home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
c
/
tcxl551.zip
/
TCXL_DOC.EXE
/
lha
/
DOC
/
TCXL-REF.TXT
< prev
next >
Wrap
Text File
|
1990-10-01
|
291KB
|
12,183 lines
The TesSeRact CXL User Interface Development System
Library Reference Manual
Version 5.51 -- October 1, 1990
Copyright 1990, Innovative Data Concepts
All Rights Reserved
Innovative Data Concepts
1657 The Fairways
Suite 101
Jenkintown, PA 19046
Voice: 1-215-884-3373
Orders: 1-800-926-4551
FAX: 1-215-886-4225
TCXL is part of IDC's TesSeRact Development Tools series of programmer's
products.
This document; other accompanying written and disk-based notes and
specifications; and all referenced and related program files accompanying
this document are copyrighted by Innovative Data Concepts. For ordering
information, see the ORDER.DOC file provided with this package. For
shareware distribution requirements, see the VENDOR.DOC file.
_______
____|__ | (R)
--| | |-------------------
| ____|__ | Association of
| | |_| Shareware
|__| o | Professionals
-----| | |---------------------
|___|___| MEMBER
The TesSeRact Development Tools are distributed as shareware -- this means
that we encourage users, subject to restrictions described in the License
Agreement, to share copies of this program with friends, associates and
bulletin boards. You may not share the registered version of The TesSeRact
Development Tools; however, you may request a free shareware disk by
completing the form in VENDOR.DOC.
If you make copies of The TesSeRact Development Tools, you must include all
files in the original distribution files, as well as the documentation
archive. You are not permitted to distribute The TesSeRact Development
Tools without this documentation.
Innovative Data Concepts is a member of the Association of Shareware
Professionals. The ASP has established stringent standards for its
members. ASP wants to make sure that the shareware principle works for
you. If you are unable to resolve a problem with an ASP member (other than
technical support), ASP may be able to help. Please write to the ASP
Ombudsman at P.O. Box 5786, Bellevue, WA 98006.
Trademarks
SWAPSK, SWAPSP, SWAPTN, SWAPMT, SWAPMM, SWAPSH, SWAPDT, SWAPNG and The
SWAP Utilities are trademarks of Innovative Data Concepts.
TesSeRact is a trademark of Innovative Data Concepts
CompuServe is a registered trademark of CompuServe Incorporated.
DESQview is a trademark of Quarterdeck Office Systems.
Epson is a registered trademark of Seiko Epson Corporation.
IBM is a registered trademark of International Business Machines.
LIM and EMS are trademarks of Lotus, Intel, and Microsoft
Corporations.
Lotus is a registered trademark of Lotus Development Corporation.
Microsoft is a registered trademark of Microsoft Corporation.
Turbo C and Turbo C++ are registered trademarks of Borland
International.
UltraVision is a trademark of Personics, Inc.
Zortech is a trademark of Zortech Inc.
Page ii TesSeRact CXL V5.5 Documentation
Detailed Table of Contents
Introductory Notes.............................................ii
Preliminary Notes & Comments................................1
User Level Functions................................................2
Menu System.....................................................2
Menu Item Manipulation......................................2
ItmCur..................................................2
ItmDis..................................................3
ItmDsp..................................................3
ItmEna..................................................4
ItmFun..................................................5
ItmGet..................................................6
ItmKey..................................................6
ItmLoc..................................................7
ItmNxt..................................................7
ItmSet..................................................8
ItmTxt..................................................8
Menu Definition and Access..................................9
MnuAct..................................................9
MnuBeg.................................................10
MnuCur.................................................11
MnuEnd.................................................12
MnuItm.................................................13
MnuShow................................................14
Entry System...................................................15
Entry Form Manipulation....................................15
EntDef.................................................15
EntFld.................................................16
EntKey.................................................17
EntSep.................................................17
EntShow................................................18
Entry Field Manipulation...................................19
FldCur.................................................19
FldFun.................................................20
FldKey.................................................21
FldLoc.................................................22
Internal Entry Routines....................................23
_FldDsp................................................23
_FldDecL...............................................23
_FldDecR...............................................23
Help System....................................................24
HlpAdd.................................................24
HlpClr.................................................24
HlpCur.................................................25
HlpDef.................................................26
HlpDrop................................................26
HlpOff.................................................27
HlpPop.................................................27
HlpPush................................................28
HlpSet.................................................28
HlpShow................................................29
HlpWind................................................29
TesSeRact CXL V5.5 Documentation Page iii
Selection System...............................................30
SelAttr................................................30
SelFile................................................31
SelStr.................................................32
SelTxt.................................................33
_Select................................................34
Middle Level Functions.............................................35
Window System..................................................35
Error Handling.............................................35
Wperror................................................35
WerrMsg................................................35
Werror.................................................36
General Window Manipulation................................36
Wactiv.................................................36
WcloseAll..............................................37
Windowat...............................................37
WinLoc.................................................38
Wisactiv...............................................38
Wopen..................................................39
WpopUp.................................................40
Wrestore...............................................41
Wsave..................................................42
WsetEsc................................................43
WsetFil................................................43
WsetFun................................................44
WsetTab................................................44
WsetTxt................................................45
Wunhide................................................46
Wunlink................................................46
Wwprints...............................................47
Active Window Movement.....................................47
Wcenter................................................47
Wclose.................................................48
Wcopy..................................................49
Wdrag..................................................49
Wdump..................................................50
Whandle................................................50
Whide..................................................51
Wmove..................................................51
Wsize..................................................52
Wslide.................................................52
Active Window Control......................................53
WchgAtr................................................53
WchkBox................................................53
WchkCol................................................54
WchkPos................................................54
WchkRow................................................55
Wclear.................................................55
WclrEol................................................56
WclrEos................................................56
WclrWin................................................57
WfilBox................................................57
WlinDel................................................58
WlinIns................................................58
WscrBox................................................59
WscrWin................................................60
Page iv TesSeRact CXL V5.5 Documentation
Active Border..............................................61
Wborder................................................61
Wbprintc...............................................61
WdrwBox................................................62
WdrwHor................................................63
WdrwVer................................................64
Wmessage...............................................65
Wtitle.................................................66
Active Shadow..............................................67
Wshadoff...............................................67
Wshadow................................................68
Active Cursor..............................................69
WcurGet................................................69
WcurGt_................................................69
WcurPut................................................70
WcurPt_................................................70
Wgotoxy................................................71
Wpgotoxy...............................................72
WposGet................................................72
Active Window Formatted Output.............................73
WdupChr................................................73
WdupStr................................................73
Wputc..................................................74
Wputs..................................................75
Wputns.................................................76
Wputsw.................................................76
Wputf..................................................77
WputFmt................................................77
WputCen................................................78
Wputrj.................................................78
_Wputl.................................................79
Active Window Unformatted Output...........................79
WdupChrA...............................................79
WdupStrA...............................................80
Wprtc..................................................81
Wprts..................................................82
Wprtns.................................................83
Wprtsw.................................................83
Wprtf..................................................84
WprtFmt................................................85
WprtCen................................................86
Wprtrj.................................................87
Display System.................................................88
Window Builders............................................88
VclrBox................................................88
VdrwBox................................................89
VdrwBx_................................................89
VfilBox................................................89
VfilBx_................................................89
Vsave..................................................90
Vrestore...............................................90
TesSeRact CXL V5.5 Documentation Page v
Video Control..............................................91
VidInit................................................91
VidMode................................................91
VidParm................................................92
VidTerm................................................92
VidType................................................93
VsetLin................................................93
Vclear.................................................94
VclrEol................................................94
VclrScr................................................94
Video Output...............................................95
Vprintc................................................95
Vprints................................................96
VputSpa................................................96
Vputc..................................................97
Vputw..................................................97
Vputw_.................................................97
Vscroll................................................98
Vscrol_................................................98
Vgetw..................................................98
Vgetw_.................................................98
Cursor Control.............................................99
VcurGet................................................99
VcurGt_................................................99
VcurHid...............................................100
VcurPut...............................................101
VcurPt_...............................................101
VcurSet...............................................102
VcurSiz...............................................102
VcurSz_...............................................102
Vgotoxy...............................................103
VposGet...............................................103
Attribute Control.........................................104
VatrInv...............................................104
VatrMap...............................................105
VatrRev...............................................106
VatrSet...............................................106
VatrTxt...............................................106
Vattrib...............................................107
Video-Disk Routines.......................................107
VsavBox...............................................107
VsavBx_...............................................107
VlodBox...............................................108
VsavScr...............................................108
VlodScr...............................................108
Input System..................................................109
Active Window Input.......................................109
KwGetCf...............................................109
KwGetCh...............................................110
KwGetFmt..............................................111
KwGetSn...............................................112
KwGetSt...............................................112
KwGetYn...............................................113
KwScanf...............................................114
Page vi TesSeRact CXL V5.5 Documentation
Default Video Input.......................................115
KvGetCf...............................................115
KvGetCh...............................................115
KvGetFmt..............................................116
KvGetSn...............................................116
KvGetSt...............................................117
KvGetYn...............................................117
KvScanf...............................................118
Asynchronous Input........................................118
KbndChg...............................................118
KbndClr...............................................119
KbndFre...............................................119
KbndIdle..............................................119
KbndSet...............................................120
Input With No Echo........................................120
KeyClear..............................................120
KeyEvent..............................................121
KeyGetc...............................................121
KeyPeek...............................................122
KeyStat...............................................122
KeyTime...............................................122
KeyWait...............................................123
Strings System................................................123
Trimming..................................................123
strltrim..............................................124
strrtrim..............................................124
strtrim...............................................124
Changing..................................................125
strchg................................................125
strichg...............................................125
strischg..............................................126
strschg...............................................126
Checksum..................................................127
strchksum.............................................127
strichksum............................................127
Delete/Insert.............................................128
strdel................................................128
strdela...............................................128
stridel...............................................129
stridela..............................................129
strins................................................130
Inclusion.................................................130
strinc................................................130
striinc...............................................131
strocc................................................131
striocc...............................................132
strsocc...............................................132
strisocc..............................................133
Replacement...............................................133
strsrep...............................................133
strisrep..............................................134
Substrings................................................134
strmid................................................134
strleft...............................................135
strright..............................................135
TesSeRact CXL V5.5 Documentation Page vii
Justification.............................................136
strljust..............................................136
strrjust..............................................136
strrol................................................137
strror................................................137
strshl................................................138
strshr................................................138
Matching..................................................139
strbmatch.............................................139
strmatch..............................................139
Miscellaneous.............................................140
strblank..............................................140
strcode...............................................140
strsetsz..............................................141
struplow..............................................141
Hardware Level Functions..........................................142
Information Subsystem.........................................142
Library Information.......................................142
TcxlInit..............................................142
TcxlTerm..............................................142
TcxlVer...............................................143
Hardware Information......................................143
_BioEqp...............................................143
BiosVer...............................................144
ClockCal..............................................144
MachId................................................145
HdwFlg................................................145
HdwGam................................................146
gameport..............................................146
HdwNdp................................................146
mathchip..............................................146
HdwMou................................................146
HdwMdm................................................147
HdwC40................................................147
HdwC80................................................147
HdwM80................................................148
HdwDrv................................................148
numflop...............................................148
HdwPar................................................148
numpar................................................148
HdwSer................................................149
numser................................................149
Utility Routines..........................................149
Beep..................................................149
RandFile..............................................149
Sound.................................................150
SysDate...............................................150
SysTime...............................................151
TabNxt................................................151
_Delay................................................152
_StdOut...............................................152
_StdOutS..............................................152
_Timer................................................153
_WaitMs...............................................153
Memory Subsystem..............................................154
MemInit...............................................154
MemTerm...............................................154
Page viii TesSeRact CXL V5.5 Documentation
Expanded Memory Routines..................................154
EMSalloc..............................................154
EMSfree...............................................155
EMSgetnam.............................................155
EMScount..............................................155
EMSpages..............................................156
EMSmap................................................156
EMSquery..............................................156
EMSrest...............................................157
EMSsave...............................................157
EMSsetnam.............................................157
EMSstat...............................................158
Extended Memory Routines..................................158
XMSalloc..............................................158
XMScopy...............................................158
XMSfree...............................................159
XMSavail..............................................159
XMSquery..............................................159
XMSlock...............................................160
XMSrealloc............................................160
XMSunlock.............................................160
_A20_LD...............................................161
_A20_LE...............................................161
_A20chk...............................................161
_A20dis...............................................161
_A20ena...............................................161
UMBalloc..............................................161
UMBfree...............................................162
HMAalloc..............................................162
HMAfree...............................................162
Printer Subsystem.............................................163
_LPputC...............................................163
lcrlf.................................................163
lprintc...............................................163
lprintf...............................................163
lprintn...............................................164
lprintns..............................................164
lprints...............................................164
lprintsb..............................................164
lprintsu..............................................165
scrndump..............................................165
windump...............................................165
OpSys Subsystem...............................................165
_ChgDir...............................................165
_ChgDrv...............................................166
_FndFst...............................................166
_FndNxt...............................................166
_GetDir...............................................167
_GetDrv...............................................167
_InpByt...............................................167
_InpWrd...............................................168
_IntDis...............................................168
_IntEna...............................................168
_OutByt...............................................169
_OutWrd...............................................169
TesSeRact CXL V5.5 Documentation Page ix
Bottom Level Functions............................................170
Video Access Subsystem........................................170
Direct Hardware Access....................................170
VidOfs................................................170
VgetDvb...............................................170
VisaEga...............................................170
VisaPs2...............................................171
VsetChr...............................................171
Ultravision Support.......................................172
_VuvDis...............................................172
_VuvEna...............................................172
_VuvGet...............................................172
_VuvSet...............................................173
_VuvVal...............................................173
Internal Hardware Calls...................................173
_VgetN................................................173
_VgetN_...............................................173
_VgetS................................................174
_VgetS_...............................................174
_VgetW................................................174
_VgetW_...............................................174
_VgetX................................................174
_VgetX_...............................................174
_VputA................................................174
_VputA_...............................................174
_VputB................................................175
_VputB_...............................................175
_VputC................................................175
_VputC_...............................................175
_VputN................................................175
_VputN_...............................................175
_VputS................................................175
_VputS_...............................................175
_VputW................................................176
_VputW_...............................................176
_VputX................................................176
_VputX_...............................................176
Keyboard Access Subsystem.....................................176
KscnCod...............................................176
KcapOff...............................................176
KcapOn................................................177
KextOff...............................................177
KextOn................................................177
KinsOff...............................................177
KinsOn................................................177
KnumOff...............................................178
KnumOn................................................178
_KeyExt...............................................178
_KeyGet...............................................178
_KeyHit...............................................179
_KeySet...............................................179
_KeySta...............................................179
KqueChk...............................................180
KqueClr...............................................180
KqueGet...............................................180
KquePut...............................................181
KqueStr...............................................181
Page x TesSeRact CXL V5.5 Documentation
Mouse Access Subsystem........................................182
MSclear...............................................182
MScurs................................................183
MSgoto................................................184
MShide................................................184
MShome................................................184
MSinit................................................184
MSkeys................................................185
MSlimit...............................................185
MSmove................................................185
MSpop.................................................186
MSpress...............................................186
MSpush................................................186
MSreles...............................................187
MSshow................................................187
MSspeed...............................................187
MSstat................................................188
MSterm................................................188
MSupdat...............................................188
_MSget................................................189
_MSpos................................................189
_MSset................................................189
_MSsho................................................190
Internal Level Functions..........................................190
Conversion Subsystem..........................................190
cvtcf.................................................190
cvtci.................................................190
cvtfc.................................................191
cvtic.................................................191
touplow...............................................191
Format Control Subsystem......................................192
FmtBack...............................................192
FmtChar...............................................192
FmtExcl...............................................192
FmtFlip...............................................193
FmtIncl...............................................193
FmtInit...............................................193
FmtPutF...............................................194
Near/Far Subsystem............................................194
MK_FP.................................................194
MK_FPT................................................194
_FarCpy...............................................195
_CpyFar...............................................195
_FarGet...............................................195
_GetFar...............................................195
_FarPut...............................................196
_PutFar...............................................196
TesSeRact CXL V5.5 Documentation Page xi
Preliminary Notes & Comments
Because of the massive size of this reference, we are not providing
examples for functions that are well-documented in the TCXLDEMO.C program,
provided with this package. Adding examples for each function could easily
expand the size of this manual to more than 200 pages, making it virtually
useless as an evaluation tool. Examples are, therefore, listed as line
references within TCXLDEMO.C, and in the various source code files.
In addition, cross-reference items have, for the most part, been eliminated
for functions in the same group; i.e, all the functions under "Menu Item
Manipulation" can be assumed to have "see also references" to each other.
We will, however, provide cross-reference material between functions that
have similar functionality or uses, when they cross the boundaries between
groups, systems, or subsystems.
The various Appendixes, referenced in this document, are packaged with the
Quick Reference Guide, as TCXL-QCK.TXT on diskette, and printed separately.
---------------------------------------------------------------------------
TesSeRact CXL V5.5 Documentation Page 1
Page 1 TesSeRact CXL V5.5 Documentation
User Level Functions
Menu System
Menu Item Manipulation
---------------------------------------------------------------------------
NAME.........ItmCur <TcxlMnu.H> Macro
DESCRIPTION
Returns the address of the current menu item's record. After this
call, you may access any of the item's elements. This function
would most likely be called from a "select", "before", or "after"
function.
PROTOTYPE....IdfP ItmCur(NOARG);
#define ItmCur() (MdfCur(MctlCur))
ARGUMENTS....None
RETURNS
The address of the current menu item's record.
SEE ALSO
IdfP (See User's Guide)
MnuCur (Page 11)
FldCur (Page 19)
HlpCur (Page 25)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 2128, 2396, 2421, 2425, 2589
Page 2 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........ItmDis <TcxlMnu.H>
DESCRIPTION
This function disables a menu item by making it nonselectable.
This function would most likely be called from a "select",
"before", or "after" function. It will set a flag so that when the
called function returns to the menu, the disabled menu item will be
displayed in the text attribute (See Appendix A) defined for
nonselectable text. Please note that you may not disable the first
menu item in the top menu in a program. This destroys the internal
linked list of pointers used to build the menu system.
PROTOTYPE....IntT CTYP ItmDis(TagT id);
ARGUMENTS
The Tag ID of the menu item
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOMNUDEF - No Menu Defined
W_NOTFOUND - Tag ID Not Found
SEE ALSO
ItmEna (Page 4)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 2558, 2564
---------------------------------------------------------------------------
NAME.........ItmDsp <TcxlMnu.H>
DESCRIPTION
This function sets the redisplay flag for a menu item. Normally,
this would be needed if you have changed the text, etc.
PROTOTYPE....IntT CTYP ItmDsp(TagT id);
ARGUMENTS
The Tag ID of the menu item
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOMNUDEF - No Menu Defined
W_NOTFOUND - Tag ID Not Found
EXAMPLE
FILE: TCXLDEMO.C.........Line: 2425, 2593
TesSeRact CXL V5.5 Documentation Page 3
---------------------------------------------------------------------------
NAME.........ItmEna <TcxlMnu.H>
DESCRIPTION
This function enables a menu item by making it selectable. This
function would most likely be called from a "select", "before", or
"after" function. It will set a flag so that when the called
function returns to the menu, the enabled menu item will be
displayed in the text attribute (See Appendix A) defined for
selectable text.
PROTOTYPE....IntT CTYP ItmEna(TagT id);
ARGUMENTS
The Tag ID of the menu item
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOMNUDEF - No Menu Defined
W_NOTFOUND - Tag ID Not Found
SEE ALSO
ItmDis (Page 3)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 2557, 2565
Page 4 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........ItmFun <TcxlMnu.H>
DESCRIPTION
Assigns "before" and "after" function pointers to the menu item
just defined. The call to this function must appear immediately
after the call to the MnuItm() to which it relates. During the
processing of the menu, when the user moves to the item, the before
function gets called. When the user leaves the item, the after
function gets called. This powerful feature allows you to do some
advanced stuff with menus, but must be used very carefully. One
possible use of ItmFun() is to define a before function that opens
a window and writes some text in it, and an after function which
closes that window. When the user moved to that menu item, the
window would open up and display text, then when the user left that
menu item, the window would automatically close.
PROTOTYPE....IntT CTYP ItmFun(VFvCP bf, VFvCP af);
ARGUMENTS
bf - Before Function (NULL if not used)
af - After Function (NULL if not used)
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOITMDEF - No Menu Items Defined
SEE ALSO
FldFun (Page 20)
WsetFun (Page 44)
MnuItm (Page 13)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 914, 953
TesSeRact CXL V5.5 Documentation Page 5
---------------------------------------------------------------------------
NAME.........ItmGet <TcxlMnu.H>
DESCRIPTION
This function returns a pointer to the text referenced by the
specified Tag.
PROTOTYPE....ChrP CTYP ItmGet(TagT id);
ARGUMENTS
The text of the menu item
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOMNUDEF - No Menu Defined
W_NOTFOUND - Tag ID Not Found
EXAMPLE
FILE: TCXLDEMO.C.........Line: 2590
---------------------------------------------------------------------------
NAME.........ItmKey <TcxlMnu.H>
DESCRIPTION
This function returns a pointer to the Item Definition by searching
for the passed hotkey.
PROTOTYPE....IdfP CTYP ItmKey(KeyT kc);
ARGUMENTS
kc - hotkey to search for
RETURNS
The address of the item referenced
NULL if not found
SEE ALSO
IdfP (See User's Guide)
ItmLoc (Page 7)
FldKey (Page 21)
EXAMPLE
FILE: INP\KEYGETC.C......Line: 113
Page 6 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........ItmLoc <TcxlMnu.H>
DESCRIPTION
This function returns a pointer to the Item Definition referenced
by the passed Tag
PROTOTYPE....IdfP CTYP ItmLoc(TagT id);
ARGUMENTS
The Tag ID of the menu item
RETURNS
The address of the item referenced
NULL if not found
SEE ALSO
IdfP (See User's Guide)
ItmKey (Page 6)
FldLoc (Page 22)
WinLoc (Page 38)
EXAMPLE
FILE: MNU\ITMDIS.C.......Line: 26
FILE: MNU\ITMDSP.C.......Line: 23
FILE: MNU\ITMENA.C.......Line: 26
FILE: MNU\ITMGET.C.......Line: 23
FILE: MNU\ITMNXT.C.......Line: 21
FILE: MNU\ITMSET.C.......Line: 26
FILE: MNU\MNUSHOW.C......Line: 108, 222
---------------------------------------------------------------------------
NAME.........ItmNxt <TcxlMnu.H>
DESCRIPTION
Defines which menu item the selection bar will move to next. This
function would most likely be called from a "select", "before", or
"after" function. The selection bar does not actually move until
the called function returns to the menu.
PROTOTYPE....IntT CTYP ItmNxt(TagT id);
ARGUMENTS
The Tag ID of the menu item
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOMNUDEF - No Menu Defined
W_NOTFOUND - Tag ID Not Found
EXAMPLE
FILE: TCXLDEMO.C.........Line: 2128, 2559, 2566
TesSeRact CXL V5.5 Documentation Page 7
---------------------------------------------------------------------------
NAME.........ItmSet <TcxlMnu.H>
DESCRIPTION
This function changes the text associated with the specified menu
item, referenced by the passed Tag.
PROTOTYPE....IntT CTYP ItmSet(TagT id, ChrP tp);
ARGUMENTS
id - The Tag ID of the menu item
tp - Pointer to the new text
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOMNUDEF - No Menu Defined
W_NOTFOUND - Tag ID Not Found
---------------------------------------------------------------------------
NAME.........ItmTxt <TcxlMnu.H>
DESCRIPTION
Adds a text description to a menu item. You can use this function
to create Lotus-style menus where the text descriptions are
displayed underneath the menu and change each time the user moves
to a new menu item.
PROTOTYPE....IntT CTYP ItmTxt(IntT wr, IntT wc, IntT at, ChrP ps);
ARGUMENTS
wr - Window Row
wc - Window Column
at - Attribute (See Appendix A)
ps - string to display
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOMNUDEF - No Menu Defined
W_NOTFOUND - Tag ID Not Found
SEE ALSO
MnuItm (Page 13)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 2286, 2288, 2290, 2292, 2294, 2296
Page 8 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
Menu Definition and Access
---------------------------------------------------------------------------
NAME.........MnuAct <TcxlMnu.H>
DESCRIPTION
Starts a menu/sub-menu definition. This is used in place of
MnuBeg(). This function differs from MnuBeg() in that when the user
processes the defined menu, the menu will assume whatever the
active window is at the time.
PROTOTYPE....IntT CTYP MnuAct(NOARG);
ARGUMENTS....None
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
ERR_MEM - Memory Allocation Failure
TcxlErr Returns:
W_NOITMDEF - No Menu Items Defined
SEE ALSO
MnuBeg (Page 10)
EntDef (Page 15)
EXAMPLE
FILE: HLP\HLPSHOW.C......Line: 278
TesSeRact CXL V5.5 Documentation Page 9
---------------------------------------------------------------------------
NAME.........MnuBeg <TcxlMnu.H>
DESCRIPTION
Starts a menu/sub-menu definition and describes the window which
the menu will reside in. This does not actually open any windows
or menus, just defines them. This must be used in conjuction with
MnuItm() and MnuEnd(). This is one of the 4 functions that are
required to process a menu.
PROTOTYPE....IntT CTYP MnuBeg(IntT sr, IntT sc, IntT er, IntT ec,
IntT bt, IntT ba, IntT wa, VfvCP fo);
ARGUMENTS
sr - Start row of menu's window
sc - Start column of menu's window
er - End row of menu's window
ec - End column of menu's window
bt - Border Type (See Appendix C [Border Types])
ba - Border Attribute (See Appendix A)
wa - Window Attribute (See Appendix A)
fo - Function to be called when the menu's window is opened.
An example would be to add a title, a shadow, etc.
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
ERR_MEM - Memory Allocation Failure
TcxlErr Returns:
W_NOITMDEF - No Menu Items Defined
SEE ALSO
VidWid, VidDep (See User's Guide)
EXAMPLE
FILE: MNU\MNUACT.C.......Line: 23
FILE: TCXLDEMO.C.........Line: 863, 904, 909, 920, 930, 943, 954,
2258, 2284
Page 10 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........MnuCur <TcxlMnu.H> Macro
DESCRIPTION
Returns the address of the currently active menu's record. After
this call, you may access any of the menu's elements. Use caution
when updating elements in the menu's record. This function should
only be called while the menu to which it relates is being
processed.
PROTOTYPE....MdfP MnuCur(NOARG);
#define MnuCur() (MctlCur)
ARGUMENTS....None
RETURNS
The address of the current menu's record.
SEE ALSO
MdfP (See User's Guide)
ItmCur (Page 2)
FldCur (Page 19)
HlpCur (Page 25)
TesSeRact CXL V5.5 Documentation Page 11
---------------------------------------------------------------------------
NAME.........MnuEnd <TcxlMnu.H>
DESCRIPTION
Ends a menu/sub-menu definition and defines specific
features/attributes of that menu. This is one of the 4 functions
that are required to process a menu.
PROTOTYPE....IntT CTYP MnuEnd(TagT ti, IntT mt, IntT bw,
IntT tp, IntT ta, IntT sa, IntT na, IntT ba);
ARGUMENTS
ti - Tag ID of the item the selaction bar will start with
mt - A mask which describes the menu style
(See Appendix C [Menu Types])
bw - Width of the section bar (zero means selection string width)
tp - Offset position from start of the selection bar that
the menu item text will start.
ta - Attribute for menu text (See Appendix A)
sa - Attribute for Selection Character (See Appendix A)
na - Attribute for non-selectable text (See Appendix A)
ba - Attribute for the selection bar (See Appendix A)
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
ERR_MEM - Memory Allocation Failure
TcxlErr Returns:
W_NOITMDEF - No Menu Items Defined
W_INVTAGID - The specified Tag ID was invalid. It must match
one of the Tag IDs in the current menu.
EXAMPLE
FILE: HLP\HLPSHOW.C......Line: 188
FILE: TCXLDEMO.C.........Line: 871, 915, 925, 935, 948, 957, 960,
2261, 2297
Page 12 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........MnuItm <TcxlMnu.H>
DESCRIPTION
Defines a menu item. This is one of the 4 functions that are
required to process a menu.
PROTOTYPE....IntT CTYP MnuItm(IntT wr, IntT wc, ChrP ps, IntT sc, TagT id,
IntT fm, VfvCP sf, WrdT hk, TagT he);
ARGUMENTS
wr - Window Row
wc - Window Column
ps - Menu Item String
sc - Quick Selection character. This is often the first letter
of the menu item.
id - unique tag identifier for this menu item
fm - Feature Mask (See Appendix C [Menu Feature Masks])
sf - Function to call when item is selected
hk - Keycode of the key which will select this item from anywhere
within the menu structure. This allows the user to call this
menu's select function even if not currently processing its menu.
he - Help Tag for this item
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
ERR_MEM - Memory Allocation Failure
TcxlErr Returns:
W_NOMNUBEG - No Begin Of Menu Specified. See MnuBeg()
SEE ALSO
ItmFun (Page 5)
ItmTxt (Page 8)
EXAMPLE
FILE: HLP\HLPSHOW.C......Line: 291
FILE: TCXLDEMO.C.........Line: 628, 867, 907, 911, 918, 922, 928,
932, 938, 941, 945, 951, 955, 956, 2260,
2285, 2287, 2289, 2291, 2293, 2295
TesSeRact CXL V5.5 Documentation Page 13
---------------------------------------------------------------------------
NAME.........MnuShow <TcxlMnu.H>
DESCRIPTION
Processes the defined menu structure. The user is allowed to move
a selection bar around to the various menu items. If mouse support
is on, then the user can use the mouse for selecting as well. If
sub-menus exists, then the user can select those also. Escape
checking is provided for when the user is in the root menu, however
if the user is in a sub-menu, pressing [Esc] will always return to
the next level up. This is one of the 4 functions that are
required to process a menu.
PROTOTYPE....IntT MnuShow(NOARG);
ARGUMENTS....None
RETURNS
The Tag ID of the menu item that was selected.
ERR_NUL - Check TcxlErr for W_ESCPRESS!
ERR_ARG - Argument Failure
ERR_MEM - Memory Allocation Failure
TcxlErr Returns:
W_NOMNUDEF - No Menu Defined
W_NOMNUEND - No End Of Menu Specified. See MnuEnd().
W_ESCPRESS - The [Esc] Key Was Pressed From The Root Menu
W_INVCOORD - Invalid Coordinates
W_INVBTYPE - Invalid Border Type
SEE ALSO
EntShow (Page 18)
HlpShow (Page 29)
EXAMPLE
FILE: HLP\HLPSHOW.C......Line: 190
FILE: TCXLDEMO.C.........Line: 873, 963, 2264, 2299
Page 14 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
Entry System
Entry Form Manipulation
---------------------------------------------------------------------------
NAME.........EntDef <TcxlEnt.H>
DESCRIPTION
Marks the beginning of a data input form, and specifies text
attributes to be used by the form. The Field Attribute is used to
display the entry fields themselves, while the Text Attribute is
used to display the required characters within the fields, that are
not user-modifiable.
PROTOTYPE....IntT CTYP EntDef(IntT fa, IntT ta);
ARGUMENTS
fa - Field Attribute (See Appendix A)
ta - Text Attribute (See Appendix A)
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
ERR_MEM - Memory Allocation Error
TcxlErr Returns:
W_NOACTIVE - No Active Window
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1011, 1575, 1711, 2420
TesSeRact CXL V5.5 Documentation Page 15
---------------------------------------------------------------------------
NAME.........EntFld <TcxlEnt.H>
DESCRIPTION
Defines a window input field.
PROTOTYPE....IntT CTYP EntFld(IntT wr, IntT wc, ChrP ps, ChrP fs, IntT fm,
TagT id, IntT md, IfcpCP vf, TagT ht);
ARGUMENTS
wr - Window Row for Start of Input
wc - Window Column for Start of Input
ps - String buffer to receive input
fs - Field Format String (See Appendix E)
fm - Feature Mask (See Appendix C [Field Feature Bits])
id - Tag Identifier for field
md - Field Mode (See "_EntCtl" in the User's Guide)
vf - Validate Function
ht - Help Tag for this field
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
ERR_MEM - Memory Allocation Error
TcxlErr Returns:
W_NOFRMBEG - No Begin Of Form Specified, see EntDef()
W_INVCOORD - Invalid Coordinates
W_INVFORMT - Invalid Format String
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1016, 1576, 1712, 2421
Page 16 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........EntKey <TcxlEnt.H>
DESCRIPTION
Allows you to extend or modify the data entry keys used as the
alternate get-key function so that during EntShow() processing you
can get a key, test it, change it, or do whatever else you like
with it before you return it to EntShow(). It also lets you
specify a variable to receive the key that caused termination of
the form. The call to EntKey() can be contained anywhere between
EntDef() and EntShow().
PROTOTYPE....IntT CTYP EntKey(WfipCP gk, WrdP tk);
ARGUMENTS
gk - Alternate getkey() function
tk - Pointer to location to store termination key
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Form
W_NOFRMBEG - No Begin Of Form Specified
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1022
---------------------------------------------------------------------------
NAME.........EntSep <TcxlEnt.H>
DESCRIPTION
This function declares a new "word separation" string. The TCXL
library has a built-in definition of the characters that will mark
the end of a "word":
LCL ChrP sepstr = " ~`!@#$%^&*()-+=|\\[]{}:;'\",./<>?";
If your application requires a different separator string, you
would call this function.
PROTOTYPE....IntT CTYP EntSep(ChrP ws);
ARGUMENTS
ws - New separation string
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOFRMBEG - No Form Defined
EXAMPLE
FILE: ENT\ENTDEF.C.......Line: 40
TesSeRact CXL V5.5 Documentation Page 17
---------------------------------------------------------------------------
NAME.........EntShow <TcxlEnt.H>
DESCRIPTION
Marks the end of the defined input form and initiates processing of
the defined input fields. The user is allowed to edit back and
forth between the defined fields until the last field is entered.
PROTOTYPE....IntT CTYP EntShow(NOARG);
ARGUMENTS....None
RETURNS
ERR_NUL - Check TcxlErr for W_ESCPRESS!
ERR_ARG - Argument Failure
ERR_NUL - No Error
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_NOINPDEF - No Input Fields Defined
SEE ALSO
MnuShow (Page 14)
HlpShow (Page 29)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1024, 1578, 1715, 2423
Page 18 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
Entry Field Manipulation
---------------------------------------------------------------------------
NAME.........FldCur <TcxlEnt.H> Macro
DESCRIPTION
Returns the address of the current input field's record. After the
call to this function, you may access any of the current input
field's elements. Use caution when updating elements in the
field's record. This function should only be called while the
input form to which it relates is being processed. Please use the
macros defined in TCXLent.h when updating members of this structure
-- while the structure may change in future versions, the macros
will remain consistent.
PROTOTYPE....FdfP FldCur(NOARG);
#define FldCur() (EdfFld(_EntCtl))
ARGUMENTS....None
RETURNS
The address of the current input field's record
SEE ALSO
FdfP (See User's Guide)
ItmCur (Page 2)
MnuCur (Page 11)
HlpCur (Page 25)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 2274
TesSeRact CXL V5.5 Documentation Page 19
---------------------------------------------------------------------------
NAME.........FldFun <TcxlEnt.H>
DESCRIPTION
Assigns "before" and "after" function pointers to the input field
just defined. The call to this function must appear immediately
after the call to the EntFld() to which it relates. During user
input, when the user enters the field, the before function gets
called. When the user leaves the validated field, the after
function gets called. This powerful feature allows you to do some
pretty advanced stuff with input fields, but must be used very
carefully.
PROTOTYPE....IntT CTYP FldFun(VfvCP bf, VfvCP af);
ARGUMENTS
bf - Before function
af - After function
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_NOINPDEF - No Input Fields Defined
SEE ALSO
ItmFun (Page 5)
WsetFun (Page 44)
EntFld (Page 16)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1019
Page 20 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........FldKey <TcxlEnt.H>
DESCRIPTION
This function assigns a "hot key" to the individual data entry
field. The call to this function must appear immediately after the
call to the EntFld() to which it relates. During user input, when
the user enters the field, the before function gets called.
PROTOTYPE....IntT CTYP FldKey(KeyT hk);
ARGUMENTS
hk - Hotkey for field
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_NOINPDEF - No Input Fields Defined
SEE ALSO
ItmKey (Page 6)
EntFld (Page 16)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1020
TesSeRact CXL V5.5 Documentation Page 21
---------------------------------------------------------------------------
NAME.........FldLoc <TcxlEnt.H>
DESCRIPTION
Searches for a defined field using the tag ID of the field, then
returns the address of the field's record. After the call to this
function, you may access any of the found input field's elements.
Use caution when updating elements in the field's record. This
function should only be called during the processing of the input
form to which it relates. Please use the macros defined in
TCXLent.h when updating members of this structure -- while the
structure may change in future versions, the macros will remain
consistent.
PROTOTYPE....FdfP CTYP FldLoc(TagT id);
ARGUMENTS
id - Tag ID of the field to search for
RETURNS
The address of the current input field's record
If an error occurs, then NULL is returned, and TcxlErr will return:
W_NOACTIVE - No Active Window
W_NOFRMDEF - No Form Defined
W_NOTFOUND - No Defined Field Matches specified Tag
SEE ALSO
FdFp (See User's Guide)
ItmLoc (Page 7)
WinLoc (Page 38)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1641
Page 22 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
Internal Entry Routines
---------------------------------------------------------------------------
NAME........._FldDsp <_TcxlEnt.H>
DESCRIPTION
Display a data-entry field.
PROTOTYPE....VOID CTYP _FldDsp(ChrP s, IntT h);
ARGUMENTS
s - String to Display
h - Attribute Flag
---------------------------------------------------------------------------
NAME........._FldDecL <_TcxlEnt.H>
DESCRIPTION
Space fill left of decimal point, right justfy against decimal
point.
PROTOTYPE....VOID CTYP _FldDecL(ChrP s);
ARGUMENTS
s - String to Adjust
---------------------------------------------------------------------------
NAME........._FldDecR <_TcxlEnt.H>
DESCRIPTION
Space fill right of decimal point, left justfy against decimal
point.
PROTOTYPE....VOID CTYP _FldDecR(ChrP s);
ARGUMENTS
s - String to Adjust
TesSeRact CXL V5.5 Documentation Page 23
---------------------------------------------------------------------------
Help System
---------------------------------------------------------------------------
NAME.........HlpAdd <TcxlHlp.H>
DESCRIPTION
Adds the current help category to the help category stack, then
sets the current help category to the specified help category.
It's effectively the same as doing a HlpCur() followed by a
HlpSet().
PROTOTYPE....IntT CTYP HlpAdd(TagT ht);
ARGUMENTS
ht - Help Tag-ID
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOHLPDEF - No Help Record Defined
W_HLPSTKOV - Help Stack Overflow (Stack Full)
---------------------------------------------------------------------------
NAME.........HlpClr <TcxlHlp.H>
DESCRIPTION
Clears the help category stack.
PROTOTYPE....IntT CTYP HlpClr(NOARG);
ARGUMENTS....None
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOHLPDEF - No Help Defined
EXAMPLE
FILE: HLP\HLPOFF.C.......Line: 29
Page 24 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........HlpCur <TcxlHlp.H> Macro
DESCRIPTION
Pushes the current help category onto the help category stack. The
default stack can hold up to 20 help categories.
PROTOTYPE....IntT HlpCur(NOARG);
#define HlpCur() (HlpPush(WctlHlp))
ARGUMENTS....None
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOHLPDEF - no defined help. See whelpdef().
W_HLPSTKOV - help stack overflow (stack full).
SEE ALSO
ItmCur (Page 2)
MnuCur (Page 11)
FldCur (Page 19)
EXAMPLE
FILE: MNU\MNUSHOW.C......Line: 187, 687
FILE: ENT\ENTSHOW.C......Line: 774
FILE: HLP\HLPADD.C.......Line: 21
FILE: TCXLDEMO.C.........Line: 2256
TesSeRact CXL V5.5 Documentation Page 25
---------------------------------------------------------------------------
NAME.........HlpDef <TcxlHlp.H>
DESCRIPTION
Defines the help file, key, and window colors. After calling this
function, anytime the help key is pressed, the help processor will
search the help file for whatever the current help category is.
PROTOTYPE....IntT CTYP HlpDef(ChrP fn, WrdT ky, IntT wa, IntT ta, IntT sa,
IntT ba, VfvCP fo);
ARGUMENTS
fn - Filename for help file
ky - Keycode of the help key
wa - Help Window Attribute (See Appendix A)
ta - Help Text Attribute (See Appendix A)
sa - Selection Text Attribute (See Appendix A)
ba - Selection Bar Attribute (See Appendix A)
fo - Function to call immediately upon opening the help window
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
ERR_MEM - Memory Allocation Error
TcxlErr Returns:
W_NOHLPDEF - No Help File Name defined
SEE ALSO
MnuBeg (Page 10)
EntDef (Page 15)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 751
---------------------------------------------------------------------------
NAME.........HlpDrop <TcxlHlp.H>
DESCRIPTION
Pops the help category off of the top of the stack and into the
oid. The current help category is not affected.
PROTOTYPE....IntT CTYP HlpDrop(NOARG);
ARGUMENTS....None
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOHLPDEF - No Defined Help
W_HLPSTKUN - Help Stack Underflow (Stack Empty)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 877, 984, 1055, 2300
Page 26 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........HlpOff <TcxlHlp.H>
DESCRIPTION
Disengages the help system. This un-defines the help key, clears
the help stack, and frees any memory allocated by the help system.
PROTOTYPE....IntT CTYP HlpOff(NOARG);
ARGUMENTS....None
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOHLPDEF - No Defined Help
EXAMPLE
FILE: HLP\HLPDEF.C.......Line: 49
---------------------------------------------------------------------------
NAME.........HlpPop <TcxlHlp.H>
DESCRIPTION
Pops the help category off of the top of the stack and makes it the
current help category.
PROTOTYPE....IntT CTYP HlpPop(NOARG);
ARGUMENTS....None
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOHLPDEF - No Defined Help
W_HLPSTKUN - Help Stack Underflow (Stack Empty)
EXAMPLE
FILE: MNU\MNUSHOW.C......Line: 191, 693
FILE: ENT\ENTSHOW.C......Line: 779
FILE: TCXLDEMO.C.........Line: 2275
TesSeRact CXL V5.5 Documentation Page 27
---------------------------------------------------------------------------
NAME.........HlpPush <TcxlHlp.H>
DESCRIPTION
Pushes the specified help category onto the help category stack.
The current help category is not affected. The default help stack
can hold up to 20 help categories.
PROTOTYPE....IntT CTYP HlpPush(TagT ct);
ARGUMENTS
ct - The help tag to push
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOHLPDEF - No Defined Help
W_HLPSTKUN - Help Stack Overflow (Stack Full)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 861, 890, 1008, 2283
---------------------------------------------------------------------------
NAME.........HlpSet <TcxlHlp.H>
DESCRIPTION
Sets the current help category. If a window is active at the time,
it will also set that window's help category. The help category
set by calling this function is what will be used by the help
processor for searching the help file for help text.
PROTOTYPE....IntT CTYP HlpSet(TagT ct);
ARGUMENTS
ct - Help Category Tag
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOHLPDEF - No Defined Help
EXAMPLE
FILE: HLP\HLPADD.C.......Line: 23
FILE: TCXLDEMO.C.........Line: 1078, 1083, 1093, 1163, 1263, 1285,
1305, 1396, 1752, 2141, 2435, 2464, 2508,
2535, 2633
Page 28 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........HlpShow <TcxlHlp.H>
DESCRIPTION
This function displays the help window, with the current window's
Help Category as the specified help text.
PROTOTYPE....VOID CTYP HlpShow(NOARG);
ARGUMENTS....None
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOHLPDEF - No Defined Help
SEE ALSO
MnuShow (Page 14)
EntShow (Page 18)
EXAMPLE
FILE: HLP\HLPDEF.C.......Line: 53
---------------------------------------------------------------------------
NAME.........HlpWind <TcxlHlp.H>
DESCRIPTION
Sets specific features to be used by the help window for when it
opens. These are screen coordinates, border type, and whether or
not to display a "Help" title on the upper window border. It does
not actually open the help window. You can call HlpWind() anytime
after calling HlpDef(). You can call HlpWind() as often as you
like during your program.
PROTOTYPE....IntT CTYP HlpWind(IntT sr, IntT sc, IntT er, IntT ec,
IntT bt, IntT ti);
ARGUMENTS
sr - Start Row
sc - Start Column
er - End Row
ec - End Column
bt - Border Type (See Appendix C [Border Types])
ti - Display "Help" title on top border? (0=no, 1=yes)
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOHLPDEF - No Defined Help
SEE ALSO
Wborder (Page 61)
TesSeRact CXL V5.5 Documentation Page 29
---------------------------------------------------------------------------
Selection System
---------------------------------------------------------------------------
NAME.........SelAttr <TcxlSel.H>
DESCRIPTION
This function will open a window and let the user interactively
pick a text attribute (See Appendix A for a list of available
attributes).
PROTOTYPE....IntT CTYP SelAttr(IntT sr, IntT sc, IntT bt, IntT ba,
IntT ab, VfvCP fo);
ARGUMENTS
sr - Start Row
sc - Start Column
bt - Border Type (See Appendix C [Border Types])
ba - Beginning Attribute (current default)
ab - Allow Blink?
fo - Function to call when window is opened
RETURNS
The new attribute
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1096
Page 30 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........SelFile <TcxlSel.H>
DESCRIPTION
This function will open up a window and display as many file/directory
names in it as it can. The user can use a selection bar to move
through the file/directory names and select one. If all of the
file/directory names cannot fit in the window, scrolling and paging is
allowed. If the user selects a directory, SelFile() will change to
that directory and display the list of files/directories in it. After
the selection is made, SelFile() will return the complete path name of
the selected file.
PROTOTYPE....ChrP CTYP SelFile(IntT sr, IntT sc, IntT er, IntT ec, IntT bt,
IntT ba, IntT wa, IntT sa, IntT ti, ChrP fs, VfvCP fo);
ARGUMENTS
sr - Start Row
sc - Start Column
er - End Row
ec - End Column
bt - Border Type (See Appendix C [Border Types])
ba - Border Attribute (See Appendix A)
wa - Window Attribute (See Appendix A)
sa - Selection Bar Attribute (See Appendix A)
ti - Display Filespec Title On Upper Border? (0=no, 1=yes)
fs - Filespec to match (ie, "*.*")
fo - Function to call when window is opened
RETURNS
The address of the static string containing the full
drive:path\filename string of the selected file. If an error occurred,
NULL will be returned and TcxlErr will be set to one of the following:
W_ESCPRESS - The [Esc] Key Was Pressed
W_ALLOCERR - Memory Allocation Error
W_DOSERROR - DOS Error (ie. Invalid Directory)
W_INVCOORD - Invalid Window Coordinates
W_INVBTYPE - Invalid Border Type
W_STRLONG - Window Not Wide Enough To Hold Largest File Name
W_NOMATCH - No Files Matched Input Filespec
W_INVPATH - Invalid Path Or Path Not Found
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1084
TesSeRact CXL V5.5 Documentation Page 31
---------------------------------------------------------------------------
NAME.........SelStr <TcxlSel.H>
DESCRIPTION
This function will open up a window and display as many of the
input strings in it as it can. The user can use a selection bar to
move through the strings and select one. If all of the strings
cannot fit in the window, scrolling and paging is allowed. After
the selection is made, SelStr() will return the array subsript of
the string that was selected.
PROTOTYPE....IntT CTYP SelStr(IntT sr, IntT sc, IntT er, IntT ec, IntT bt,
IntT ba, IntT wa, IntT sa, ChrP as[], IntT ie, VfvCPfo);
ARGUMENTS
sr - Start Row
sc - Start Column
er - End Row
ec - End Column
bt - Border Type (See Appendix C [Border Types])
ba - Border Attribute (See Appendix A)
wa - Window Attribute (See Appendix A)
sa - Selection Bar Attribute (See Appendix A)
as - Base of array of string pointers
ie - Initial Element to default to
fo - Function to call when window is opened
RETURNS
The array subscript of the selected string. If an error occurred,
then -1 (ERR_ARG) will be returned and TcxlErr will be set to one of
the following:
W_ESCPRESS - The [Esc] Key Was Pressed
W_ALLOCERR - Memory Allocation Error
W_INVCOORD - Invalid Window Coordinates
W_INVBTYPE - Invalid Border Type
W_STRLONG - Window Not Wide Enough To Hold Largest String
W_INVPATH - Invalid Path Or Path Not Found
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1079, 1204, 2052, 2065
Page 32 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........SelTxt <TcxlSel.H>
DESCRIPTION
Allows user to select one string from an array of strings via an
in-place "menu". This function is the same as SelStr(), except
that it puts the selection menu in the current active window,
instead of creating a separate window for the selection.
PROTOTYPE....IntT CTYP SelTxt(IntT wr, IntT wc, IntT at,
ChrP as[], IntT in);
ARGUMENTS
wr - Window Row to start selection
wc - Window Column to start selection
at - Attribute for selection text (See Appendix A)
as - Base of array of string pointers
ie - Initial Element to default to
RETURNS
The array subscript of the selected string. If an error occurred,
then -1 (ERR_ARG) will be returned and TcxlErr will be set to one of
the following:
W_NOACTIVE - No Active Window
W_ESCPRESS - The [Esc] Key Was Pressed
W_STRLONG - Window Not Wide Enough To Hold Largest String
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1090
TesSeRact CXL V5.5 Documentation Page 33
---------------------------------------------------------------------------
NAME........._Select <TcxlSel.H>
DESCRIPTION
This is the internal selection engine, called by SelFile(),
SelStr() and SelTxt().
PROTOTYPE....IntT CTYP _Select(IntT sr, IntT sc, IntT er, IntT ec,
IntT bt, IntT ba, IntT wa, IntT sa, ChrP as[], IntT ie, VfvCP fo);
ARGUMENTS
sr - Start Row
sc - Start Column
er - End Row
ec - End Column
bt - Border Type (See Appendix C [Border Types])
ba - Border Attribute (See Appendix A)
wa - Window Attribute (See Appendix A)
sa - Selection Bar Attribute (See Appendix A)
as - Base of array of string pointers
ie - Initial Element to default to
fo - Function to call when window is opened
RETURNS
The array subscript of the selected string. If an error occurred,
then -1 (ERR_ARG) will be returned and TcxlErr will be set to one of
the following:
W_ESCPRESS - The [Esc] Key Was Pressed
W_ALLOCERR - Memory Allocation Error
W_INVCOORD - Invalid Window Coordinates
W_INVBTYPE - Invalid Border Type
W_STRLONG - Window Not Wide Enough To Hold Largest String
W_INVPATH - Invalid Path Or Path Not Found
EXAMPLE
FILE: SEL\SELFILE.C......Line: 137
FILE: SEL\SELSTR.C.......Line: 27
FILE: SEL\SELTXT.C.......Line: 32
Page 34 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
Middle Level Functions
Window System
Error Handling
---------------------------------------------------------------------------
NAME.........Wperror <TcxlWin.H>
DESCRIPTION
Opens an error window, displays an error message, sounds a beep,
waits for a keypress, then returns to caller. The error window is
opened in the general vicinity of the cursor position.
PROTOTYPE....IntT CTYP Wperror(ChrP mp);
ARGUMENTS
mp - The message you want displayed in the error window
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_STRLONG - error message string too long
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1354, 1359, 2060, 2393, 2400, 2408
---------------------------------------------------------------------------
NAME.........WerrMsg <TcxlWin.H>
DESCRIPTION
This function, reads the global error value stored in TcxlErr, and
returns the literal error message that corresponds to it. This can
be very useful in debugging programs that use TCXL's windowing
functions.
PROTOTYPE....ChrP CTYP WerrMsg(NOARG);
ARGUMENTS....None
RETURNS
A pointer to the error message associated with the current value of
TcxlErr().
EXAMPLE
FILE: TCXLDEMO.C.........Line: 2630
TesSeRact CXL V5.5 Documentation Page 35
---------------------------------------------------------------------------
NAME.........Werror <TcxlWin.H>
DESCRIPTION
This function terminates your application with a fatal error
message, based on the value of TcxlErr(). The video system is
restored, the screen is cleared, and the error message is set to
the Standard Error device (StdErr).
PROTOTYPE....VOID CTYP Werror(NOARG);
ARGUMENTS....None
RETURNS......None
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1689
---------------------------------------------------------------------------
General Window Manipulation
---------------------------------------------------------------------------
NAME.........Wactiv <TcxlWin.H>
DESCRIPTION
Activates a previously opened window, bringing it "in front" of all
the others. Many windowing functions can perform their operations
only on the active window. If a window is not active, you will
need to activate it before you can use it for these functions.
PROTOTYPE....IntT CTYP Wactiv(WndT wh);
ARGUMENTS
wh - Window Handle
RETURNS
ERR_NUL - No Error, or Window Already Active
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOTFOUND - Window Handle Not Found
W_NOACTIVE - No Open Windows
EXAMPLE
FILE: MNU\MNUSHOW.C......Line: 363, 691
FILE: TCXLDEMO.C.........Line: 1272, 2375
Page 36 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........WcloseAll <TcxlWin.H>
DESCRIPTION
Closes all open windows.
PROTOTYPE....IntT CTYP WcloseAll(NOARG);
ARGUMENTS....None
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
SEE ALSO
Wclose (Page 48)
---------------------------------------------------------------------------
NAME.........Windowat <TcxlWin.H>
DESCRIPTION
Returns the handle of the window at given screen row, column
coordinates.
PROTOTYPE....WndT CTYP Windowat(IntT sr, IntT sc);
ARGUMENTS
sr - Screen Row
sc - Screen Column
RETURNS
The window handle of the window at the given coordinates.
ERR_NUL - Check TcxlErr for Error Code!
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOTFOUND - no window found at given screen coordinates
TesSeRact CXL V5.5 Documentation Page 37
---------------------------------------------------------------------------
NAME.........WinLoc <TcxlWin.H>
DESCRIPTION
Finds the address of a window record using the specified window
handle. This is used internally be several TCXL functions.
PROTOTYPE....WdfP CTYP WinLoc(WndT wh);
ARGUMENTS
wh - Window Handle
RETURNS
The address of the window control structure, or NULL if no record was
found.
SEE ALSO
Wdfp (See User's Guide)
FldLoc (Page 22)
ItmLoc (Page 7)
EXAMPLE
FILE: WIN\WACTIV.C.......Line: 41
FILE: WIN\WUNHIDE.C......Line: 36
FILE: WIN\WUNLINK.C......Line: 28
FILE: WIN\WWPRINTS.C.....Line: 42
---------------------------------------------------------------------------
NAME.........Wisactiv <TcxlWin.H> Macro
DESCRIPTION
Determines if the specified window is active.
PROTOTYPE....IntT Wisactiv(WndT a);
#define Wisactiv(a) ((a) == WdfHdl(WctlAct))
ARGUMENTS
a - Window Handle
RETURNS
TRUE if specified handle is active
FALSE otherwise
Page 38 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........Wopen <TcxlWin.H>
DESCRIPTION
Opens a screen window and makes it active. The cursor location
will be initialized to window row 0, column 0. The text attribute
(See Appendix A) will be initialized to the same attribute as the
window. You can open as many windows as memory permits.
PROTOTYPE....WndT CTYP Wopen(IntT sr, IntT sc, IntT er, IntT ec, IntT bt,
IntT ba, IntT wa);
ARGUMENTS
sr - Start Row
sc - Start Column
er - End Row
ec - End Column
bt - Border Type (See Appendix C [Border Types])
ba - Border Attribute (See Appendix A)
wa - Window Attribute (See Appendix A)
RETURNS
The window handle of the new window, or:
ERR_ARG - Argument Failure
TcxlErr Returns:
W_INVCOORD - Invalid Coordinates
W_INVBTYPE - Invalid Border Type
SEE ALSO
Wpopup (Page 40)
EXAMPLE
FILE: MNU\MNUSHOW.C......Line: 79
FILE: HLP\HLPSHOW.C......Line: 84
FILE: SEL\SELATTR.C......Line: 32
FILE: SEL\_SELECT.C......Line: 98
FILE: WIN\WCOPY.C........Line: 38
FILE: WIN\WPERROR.C......Line: 43
FILE: WIN\WPOPUP.C.......Line: 35
FILE: TCXLDEMO.C.........Line: 805, 831, 1218, 1261, 1282, 1376,
1567, 1571, 1709, 2095, 2099, 2138, 2381,
2462, 2505, 2532, 2568
TesSeRact CXL V5.5 Documentation Page 39
---------------------------------------------------------------------------
NAME.........WpopUp <TcxlWin.H>
DESCRIPTION
This function, like Wopen(), opens a screen window and makes it
active. However, this function will automatically center the
window on the screen; horizontally, vertically, or both. This
function will detect the screen size, based on the initialization
parameters, and react accordingly.
For consistency, the parameter list for WpopUp() is identical to
Wopen() except for the addition of the flag byte. However, the
start/end positions are used only for size determination.
WpopUp() is identical to calling Wopen() followed by Wcenter().
PROTOTYPE....WndT CTYP WpopUp(IntT cf, IntT sr, IntT sc, IntT er,
IntT ec, IntT bt, IntT ba, IntT wa);
ARGUMENTS
cf - Centering Flag (See Appendix C [Centering Flags])
sr - Start Row
sc - Start Column
er - End Row
ec - End Column
bt - Border Type (See Appendix C [Border Types])
ba - Border Attribute (See Appendix A)
wa - Window Attribute (See Appendix A)
RETURNS
The window handle of the new window, or:
ERR_ARG - Argument Failure
TcxlErr Returns:
W_INVCOORD - Invalid Coordinates
W_INVBTYPE - Invalid Border Type
SEE ALSO
Wopen (Page 39)
Wcenter (Page 47)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 808, 836, 999, 1027, 1073, 1129,
1135, 1158, 1208, 1242, 1468
Page 40 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........Wrestore <TcxlWin.H>
DESCRIPTION
Restores a previously saved region of the screen screen and frees
the memory allocated by wsave().
PROTOTYPE....VOID CTYP Wrestore(VcelP wb);
ARGUMENTS
wb - Pointer to Window Buffer
RETURNS......None
SEE ALSO
Wsave (Page 42)
Vsave (Page 90)
Vrestore (Page 90)
EXAMPLE
FILE: WIN\WCLOSE.C.......Line: 30
FILE: WIN\WCOPY.C........Line: 44
FILE: WIN\WDRAG.C........Line: 72
FILE: WIN\WHIDE.C........Line: 39
FILE: WIN\WMOVE.C........Line: 38, 49
FILE: WIN\WUNHIDE.C......Line: 44
TesSeRact CXL V5.5 Documentation Page 41
---------------------------------------------------------------------------
NAME.........Wsave <TcxlWin.H>
DESCRIPTION
Saves a region of the screen and allocates memory to hold the
buffer.
PROTOTYPE....VcelP CTYP Wsave(IntT sr, IntT sc, IntT er, IntT ec);
ARGUMENTS
sr - Start Row
sc - Start Column
er - End Row
ec - End Column
RETURNS
Address of newly-created window buffer, or NULL if not enough memory.
SEE ALSO
Wrestore (Page 41)
Vsave (Page 90)
Vrestore (Page 90)
EXAMPLE
FILE: WIN\WCOPY.C........Line: 30
FILE: WIN\WDRAG.C........Line: 61, 64
FILE: WIN\WHIDE.C........Line: 29
FILE: WIN\WMOVE.C........Line: 35, 42
FILE: WIN\WOPEN.C........Line: 58
FILE: WIN\WUNHIDE.C......Line: 41
Page 42 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........WsetEsc <TcxlWin.H> Macro
DESCRIPTION
Sets the Escape checking status for window keyboard input functions
that utilize Escape checking. By default, Escape checking is on. When
the user presses [Esc] while Escape checking is off, the keypress will
be ignored. The exception to this is when inside a context-sensitive
help screen or when inside a sub-menu of a multi-level menu system.
PROTOTYPE....VOID WsetEsc(IntT a);
#define WsetEsc(a) (WctlEsc = (a))
ARGUMENTS
a - 0 means turn Esc Checking off, 1 means turn it on.
RETURNS......None
---------------------------------------------------------------------------
NAME.........WsetFil <TcxlWin.H> Macro
DESCRIPTION
Specifies which character the windowing system will use for filling
windows with. By default, it is a space (' ').
PROTOTYPE....VOID WsetFil(Int a);
#define WsetFil(a) (WctlFil = (a))
ARGUMENTS
a - Character to use as fill char
RETURNS......None
EXAMPLE
FILE: TCXLDEMO.C.........Line: 830
FILE: TCXLDEMO.C.........Line: 835
TesSeRact CXL V5.5 Documentation Page 43
---------------------------------------------------------------------------
NAME.........WsetFun <TcxlWin.H>
DESCRIPTION
This function sets an alternate routine to "fill" a window when it
is opened. See the default Fill function, WfilBox(), for details
on the prototype for this routine.
PROTOTYPE....IntT CTYP WsetFun(VOID (CTYP *f)(WrdT, WrdT, IntT, IntT));
ARGUMENTS
f - Replacement Fill Function
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_INVCOORD - Invalid Coordinates
---------------------------------------------------------------------------
NAME.........WsetTab <TcxlWin.H> Macro
DESCRIPTION
Modifies the tab width to be used when displaying tabs in the
active window via the window TTY output functions. The default tab
width is 8.
PROTOTYPE....VOID WsetTab(IntT a);
#define WsetTab(a) (WctlTab = (((a) == 0) ? 1 : (a)))
ARGUMENTS
a - Tab Width (in columns)
RETURNS......None
Page 44 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........WsetTxt <TcxlWin.H>
DESCRIPTION
Sets the current text attribute (See Appendix A) for the active
window. The current text attribute is used by the window TTY
output functions for displaying text inside the active window.
PROTOTYPE....IntT CTYP WsetTxt(IntT a);
ARGUMENTS
a - Text Attribute (See Appendix A)
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
SEE ALSO
Vattrib (Page 107)
WchgAtr (Page 53)
EXAMPLE
FILE: MNU\MNUSHOW.C......Line: 398
FILE: HLP\HLPSHOW.C......Line: 106, 112, 167, 320
FILE: WIN\WPERROR.C......Line: 46
FILE: WIN\WPUTS.C........Line: 96, 99, 102, 105, 108, 111, 114, 117
FILE: TCXLDEMO.C.........Line: 1306, 1397, 1583, 1610, 1612, 1622,
1753, 2103, 2436, 2451
TesSeRact CXL V5.5 Documentation Page 45
---------------------------------------------------------------------------
NAME.........Wunhide <TcxlWin.H>
DESCRIPTION
Unhides a previously hidden window. The unhidden window becomes
the active window.
PROTOTYPE....IntT CTYP Wunhide(WndT wh);
ARGUMENTS
wh - Window Handle
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOTFOUND - Window Handle Not Found
W_NOHIDDEN - No Hidden Windows
W_NOTHIDD - Window Not Hidden
SEE ALSO
Whide (Page 51)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1766
---------------------------------------------------------------------------
NAME.........Wunlink <TcxlWin.H>
DESCRIPTION
Releases all memory allocated by a window, then unlinks it from the
window chain, making it no longer accessible. The screen is not
changed in any way. If the passed window handle is zero, the
current active window is unlinked.
PROTOTYPE....IntT CTYP Wunlink(WndT wh);
ARGUMENTS
wh - Window Handle
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOTFOUND - Input Window Handle Was Not Found
Page 46 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........Wwprints <TcxlWin.H>
DESCRIPTION
Prints a string to the specified window. The specified window can
be active, hidden, or blocked. Control characters are not
recognized. Cursor position is not updated.
PROTOTYPE....IntT CTYP Wwprints(WndT wh, IntT wr, IntT wc,
IntT at, ChrP ps);
ARGUMENTS
wh - Window Handle
wr - Window Row
wc - Window Column
at - Text Attribute (See Appendix A)
ps - String to display
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_NOTFOUND - Window Handle Not Found
W_INVCOORD - Invalid Window Coordinates
W_STRLONG - String Too Long (Not All Of String Was Displayed)
---------------------------------------------------------------------------
Active Window Movement
---------------------------------------------------------------------------
NAME.........Wcenter <TcxlWin.H>
DESCRIPTION
Centers the active window on the screen, horizontally, vertically,
or both.
PROTOTYPE....IntT CTYP Wcenter(IntT cf);
ARGUMENTS
cf - Centering Flag (See Appendix C [Centering Flags])
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_ALLOCERR - Memory Allocation Error
W_NOACTIVE - No Active Window
SEE ALSO
Wopen (Page 39)
Wpopup (Page 40)
TesSeRact CXL V5.5 Documentation Page 47
---------------------------------------------------------------------------
NAME.........Wclose <TcxlWin.H>
DESCRIPTION
Closes the active window. If the window has a shadow, it will be
closed as well.
PROTOTYPE....IntT CTYP Wclose(NOARG);
ARGUMENTS....None
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
SEE ALSO
Wopen (Page 39)
WcloseAll (Page 37)
EXAMPLE
FILE: MNU\MNUSHOW.C......Line: 362
FILE: HLP\HLPSHOW.C......Line: 138
FILE: SEL\SELATTR.C......Line: 60, 67
FILE: SEL\_SELECT.C......Line: 138, 246
FILE: WIN\WCLOSEAL.C.....Line: 25
FILE: WIN\WPERROR.C......Line: 51
FILE: TCXLDEMO.C.........Line: 967, 968, 1050, 1056, 1099, 1139,
1179, 1224, 1225, 1250, 1336, 1385, 1545,
1579, 1627, 1718, 2376, 2572
Page 48 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........Wcopy <TcxlWin.H>
DESCRIPTION
Creates a new window duplicating the active window. The new window
becomes the active window.
PROTOTYPE....WndT CTYP Wcopy(IntT nr, IntT nc);
ARGUMENTS
nr - Start Row of duplicate window
sc - Start Column of duplicate window
RETURNS
The window handle of the new window, or:
ERR_ARG - Argument Failure
TcxlErr Returns:
W_INVCOORD - invalid coordinates
SEE ALSO
Wopen (Page 39)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1401, 1404
---------------------------------------------------------------------------
NAME.........Wdrag <TcxlWin.H>
DESCRIPTION
Smoothly drag active window one row/column in given direction.
PROTOTYPE....IntT CTYP Wdrag(IntT df);
ARGUMENTS
df - Direction (See Appendix C [Direction Codes])
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_ALLOCERR - Memory Allocation Error
SEE ALSO
Wslide (Page 52)
Wmove (Page 51)
EXAMPLE
FILE: WIN\WSLIDE.C.......Line: 36, 39, 42, 45
TesSeRact CXL V5.5 Documentation Page 49
---------------------------------------------------------------------------
NAME.........Wdump <TcxlWin.H>
DESCRIPTION
Dumps the active window to the default printer (PRN).
PROTOTYPE....IntT CTYP Wdump(NOARG);
ARGUMENTS....None
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
SEE ALSO
windump (Page 165)
scrndump (Page 165)
---------------------------------------------------------------------------
NAME.........Whandle <TcxlWin.H>
DESCRIPTION
Returns the window handle of the active window.
PROTOTYPE....WndT CTYP Whandle(NOARG);
ARGUMENTS....None
RETURNS
The handle of the active window, or zero if error;
TcxlErr Returns:
W_NOACTIVE - No Active Window
SEE ALSO
Wactiv (Page 36)
Windowat (Page 37)
WinLoc (Page 38)
Wisactiv (Page 38)
Page 50 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........Whide <TcxlWin.H>
DESCRIPTION
Hides the active window. The next window becomes active.
PROTOTYPE....IntT CTYP Whide(NOARG);
ARGUMENTS....None
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_ALLOCERR - Memory Allocation Error
W_NOACTIVE - No Active Window
SEE ALSO
Wunhide (Page 46)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1760
---------------------------------------------------------------------------
NAME.........Wmove <TcxlWin.H>
DESCRIPTION
Moves the active window to a new location on the screen.
PROTOTYPE....IntT CTYP Wmove(IntT sr, IntT sc);
ARGUMENTS
sr - New Start Row
sc - New Start Column
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_ALLOCERR - Memory Allocation Error
W_NOACTIVE - No Active Window
SEE ALSO
Wslide (Page 52)
Wdrag (Page 49)
EXAMPLE
FILE: WIN\WCENTER.C......Line: 29
FILE: TCXLDEMO.C.........Line: 2172
TesSeRact CXL V5.5 Documentation Page 51
---------------------------------------------------------------------------
NAME.........Wsize <TcxlWin.H>
DESCRIPTION
Adjusts the size of the active window by changing the screen
coordinates of its lower-right corner.
PROTOTYPE....IntT CTYP Wsize(IntT nr, IntT nc);
ARGUMENTS
nr - New Lower-Left Row
nc - New Lower-Left Column
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_ALLOCERR - Memory Allocation Error
W_NOACTIVE - No Active Window
W_INVCOORD - Invalid Coordinates
EXAMPLE
FILE: TCXLDEMO.C.........Line: 2496
---------------------------------------------------------------------------
NAME.........Wslide <TcxlWin.H>
DESCRIPTION
Smoothly slides active window to new screen position.
PROTOTYPE....IntT CTYP Wslide(IntT sr, IntT sc);
ARGUMENTS
sr - New Start Row
sc - New Start Column
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_ALLOCERR - Memory Allocation Error
W_NOACTIVE - No Active Window
W_INVCOORD - Invalid Coordinates
SEE ALSO
Wdrag (Page 49)
Wmove (Page 51)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 2183
Page 52 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
Active Window Control
---------------------------------------------------------------------------
NAME.........WchgAtr <TcxlWin.H>
DESCRIPTION
Changes the text attribute of the active window. All text within
the window will be changed also.
PROTOTYPE....IntT CTYP WchgAtr(IntT ba, IntT wa);
ARGUMENTS
ba - New Border Attribute (See Appendix A)
wa - New Window Attribute (See Appendix A)
RETURNS
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
SEE ALSO
WsetTxt (Page 45)
Vattrib (Page 107)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1323
---------------------------------------------------------------------------
NAME.........WchkBox <TcxlWin.H>
DESCRIPTION
Determines whether input window box coordinates are valid for use
in the active window.
PROTOTYPE....IntT CTYP WchkBox(IntT sr, IntT sc, IntT er, IntT ec);
ARGUMENTS
sr - Start Row
sc - Start Column
er - End Row
ec - End Column
RETURNS
Nonzero if coordinates are invalid
EXAMPLE
FILE: WIN\WDRWBOX.C......Line: 28
FILE: WIN\WFILBOX.C......Line: 27
FILE: WIN\WSCRBOX.C......Line: 29
TesSeRact CXL V5.5 Documentation Page 53
---------------------------------------------------------------------------
NAME.........WchkCol <TcxlWin.H>
DESCRIPTION
Determines whether input window column coordinate is valid for use
in the active window.
PROTOTYPE....IntT CTYP WchkCol(IntT wc);
ARGUMENTS
wc - Window Column to check
RETURNS
Nonzero if coordinate is invalid
---------------------------------------------------------------------------
NAME.........WchkPos <TcxlWin.H>
DESCRIPTION
Determines whether input window row, column coordinates are valid
for use in the active window.
PROTOTYPE....IntT CTYP WchkPos(IntT wr, IntT wc);
ARGUMENTS
wr - Window Row to check
wc - Window Column to check
RETURNS
Nonzero if coordinates are invalid
EXAMPLE
FILE: WIN\WCHKBOX.C......Line: 21
FILE: WIN\WCURPUT.C......Line: 28
FILE: WIN\WGOTOXY.C......Line: 26
FILE: WIN\WPRTC.C........Line: 27
FILE: WIN\WPRTRJ.C.......Line: 28
FILE: WIN\WPRTS.C........Line: 29
Page 54 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........WchkRow <TcxlWin.H>
DESCRIPTION
Determines whether input window row is valid for use in the
activewindow.
PROTOTYPE....IntT CTYP WchkRow(IntT wr);
ARGUMENTS
wr - Window Row to check
RETURNS
Nonzero if coordinate is invalid
EXAMPLE
FILE: WIN\WCHKPOS.C......Line: 21
FILE: WIN\WLINDEL.C......Line: 27
FILE: WIN\WLININS.C......Line: 27
FILE: WIN\WPRTCEN.C......Line: 29
---------------------------------------------------------------------------
NAME.........Wclear <TcxlWin.H> Macro
DESCRIPTION
Clears the active window and homes the cursor.
PROTOTYPE....IntT Wclear(NOARG);
#define Wclear() (WclrWin(WdfDat(WctlAct)))
ARGUMENTS....None
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
SEE ALSO
WclrWin (Page 57)
Vclear (Page 94)
VclrScr (Page 94)
VclrBox (Page 88)
VfilBox (Page 89)
EXAMPLE
FILE: HLP\HLPSHOW.C......Line: 215, 253
FILE: WIN\WPUTS.C........Line: 132
FILE: TCXLDEMO.C.........Line: 1044, 1491, 1582
TesSeRact CXL V5.5 Documentation Page 55
---------------------------------------------------------------------------
NAME.........WclrEol <TcxlWin.H>
DESCRIPTION
Clears from the cursor to the end of the active window's line. The
cursor's position is not updated.
PROTOTYPE....IntT CTYP WclrEol(NOARG);
ARGUMENTS....None
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
SEE ALSO
VclrEol (Page 94)
VputSpa (Page 96)
EXAMPLE
FILE: MNU\MNUSHOW.C......Line: 400
FILE: WIN\WCLREOS.C......Line: 31, 36
FILE: WIN\WPUTS.C........Line: 138
FILE: TCXLDEMO.C.........Line: 1646
---------------------------------------------------------------------------
NAME.........WclrEos <TcxlWin.H>
DESCRIPTION
Clears from the cursor to the end of the active window. The
cursor's position is not updated.
PROTOTYPE....IntT WclrEos(NOARG);
ARGUMENTS....None
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
SEE ALSO
VputSpa (Page 96)
EXAMPLE
FILE: WIN\WPUTS.C........Line: 135
Page 56 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........WclrWin <TcxlWin.H>
DESCRIPTION
Clears the active window using specified text attribute (See
Appendix A), then homes the cursor. This is the same as calling
WchgAtr(), followed by Wclear(). [NOTE! Wclear() is implemeted as
a macro that calls WclrWin().]
PROTOTYPE....IntT CTYP WclrWin(IntT at);
ARGUMENTS
at - Attribute (See Appendix A)
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
SEE ALSO
Wclear (Page 55)
Vclear (Page 94)
VclrScr (Page 94)
VclrBox (Page 88)
VfilBox (Page 89)
---------------------------------------------------------------------------
NAME.........WfilBox <TcxlWin.H>
DESCRIPTION
Fills in a region of active window with a specified character and
attribute (See Appendix A).
PROTOTYPE....IntT CTYP WfilBox(IntT sr, IntT sc, IntT er, IntT ec,
IntT ch, IntT at);
ARGUMENTS
sr - Start Row
sc - Start Column
er - End Row
ec - End Column
ch - Character to use
at - Attribute (See Appendix A)
RETURNS
ERR_NUL - No Error
TesSeRact CXL V5.5 Documentation Page 57
---------------------------------------------------------------------------
NAME.........WlinDel <TcxlWin.H>
DESCRIPTION
Deletes a line from the active window. Depending upon the input
scroll direction, the lines above or below the line to delete will
scroll to fill in the deleted line in, and a blank line will be
added. If what you really want to do is clear the line, you may
want to use WclrEol() instead.
PROTOTYPE....IntT CTYP WlinDel(IntT wr, IntT df);
ARGUMENTS
wr - Window Row to delete
df - Direction (See Appendix C [Direction Codes])
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_INVCOORD - Invalid Window Row
---------------------------------------------------------------------------
NAME.........WlinIns <TcxlWin.H>
DESCRIPTION
Inserts a blank line in the active window. Depending upon the
input scroll direction, lines will shift up or down to make room
for the new line.
PROTOTYPE....IntT CTYP WlinIns(IntT wr, IntT di);
ARGUMENTS
wr - Window Row to delete
df - Direction (See Appendix C [Direction Codes])
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_INVCOORD - Invalid Window Row
Page 58 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........WscrBox <TcxlWin.H>
DESCRIPTION
Scrolls a region of the active window up or down.
PROTOTYPE....IntT CTYP WscrBox(IntT sr, IntT sc, IntT er, IntT ec,
IntT n, IntT d);
ARGUMENTS
sr - Start Row
sc - Start Column
er - End Row
ec - End Column
n - Number of lines to scroll
d - Direction (Up or Down only!) (See Appendix C [Direction Codes])
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_INVCOORD - Invalid Window Coordinates
SEE ALSO
Vscroll (Page 98)
EXAMPLE
FILE: WIN\WLINDEL.C......Line: 39
FILE: WIN\WLININS.C......Line: 39
TesSeRact CXL V5.5 Documentation Page 59
---------------------------------------------------------------------------
NAME.........WscrWin <TcxlWin.H>
DESCRIPTION
Scrolls text lines within the active window, up or down.
PROTOTYPE....IntT WscrWin(IntT n, IntT d);
ARGUMENTS
n - Number of lines to scroll
d - Direction (Up or Down only!) (See Appendix C [Direction Codes])
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
SEE ALSO
Vscroll (Page 98)
EXAMPLE
FILE: SEL\_SELECT.C......Line: 382, 402
FILE: WIN\WPUTC.C........Line: 67
FILE: WIN\WPUTS.C........Line: 50
Page 60 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
Active Border
---------------------------------------------------------------------------
NAME.........Wborder <TcxlWin.H>
DESCRIPTION
Changes the active window's border type. If changing to or from a
borderless window, the window's effective area will change as well,
changing relative coordinates within the window.
PROTOTYPE....IntT CTYP Wborder(IntT bt);
ARGUMENTS
bt - Border Type (See Appendix C [Border Types])
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_INVBTYPE - Invalid Border Type
SEE ALSO
VdrwBox (Page 89)
EXAMPLE
FILE: WIN\WSIZE.C........Line: 82
FILE: TCXLDEMO.C.........Line: 1313
---------------------------------------------------------------------------
NAME.........Wbprintc <TcxlWin.H>
DESCRIPTION
Displays a character on a window's border.
PROTOTYPE....IntT CTYP Wbprintc(IntT bd, IntT of, IntT at, IntT ch);
ARGUMENTS
bd - Border Side (See Appendix C [Border Sides])
of - Offset for display
at - Text Attribute (See Appendix A)
ch - Character to display
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_NOBORDER - Window Has No Border
W_INVCOORD - Border Offset Out Of Range
TesSeRact CXL V5.5 Documentation Page 61
---------------------------------------------------------------------------
NAME.........WdrwBox <TcxlWin.H>
DESCRIPTION
"Draws" a text box in the active window.
PROTOTYPE....IntT CTYP WdrwBox(IntT sr, IntT sc, IntT er, IntT ec,
IntT bt, IntT at);
ARGUMENTS
sr - Start Row
sc - Start Column
er - End Row
ec - End Column
bt - Border Type (See Appendix C [Border Types])
ba - Border Attribute (See Appendix A)
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_NOBORDER - Window Has No Border
W_INVCOORD - Border Offset Out Of Range
SEE ALSO
VdrwBox (Page 89)
EXAMPLE
FILE: SEL\SELATTR.C......Line: 51, 54
Page 62 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........WdrwHor <TcxlWin.H>
DESCRIPTION
"Draws" a horizontal text line in active window using characters
defined by given box type. If horizontal line crosses a vertical
line, an appropriate intersection or corner will be used.
PROTOTYPE....IntT CTYP WdrwHor(IntT sr, IntT sc, IntT nc,
IntT bt, IntT at);
ARGUMENTS
sr - Start Row
sc - Start Columns
nc - Number of Columns
bt - Border Type (See Appendix C [Border Types])
at - Attribute (See Appendix A)
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_INVCOORD - Text Line Too Long For Window
W_INVBTYPE - Invalid Box Type
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1777, 2098, 2487, 2488
TesSeRact CXL V5.5 Documentation Page 63
---------------------------------------------------------------------------
NAME.........WdrwVer <TcxlWin.H>
DESCRIPTION
"Draws" a vertical text line in the active window using characters
defined by the given box type. If the vertical line crosses a
horizontal line, an appropriate intersection or corner will be
displayed.
PROTOTYPE....IntT CTYP WdrwVer(IntT sr, IntT sc, IntT n,
IntT bt, IntT at);
ARGUMENTS
sr - Start Row
sc - Start Columns
n - Number of Rows
bt - Border Type (See Appendix C [Border Types])
at - Attribute (See Appendix A)
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_INVCOORD - Text Line Too Long For Window
W_INVBTYPE - Invalid Box Type
EXAMPLE
FILE: TCXLDEMO.C.........Line: 2616
Page 64 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........Wmessage <TcxlWin.H>
DESCRIPTION
Displays text on the top or bottom border of the active window.
PROTOTYPE....IntT CTYP Wmessage(ChrP ps, IntT bo, IntT lo, IntT at);
ARGUMENTS
ps - Message String
bo - Border Sides (See Appendix C [Border Sides])
lo - Left Offset to Display Message
at - Attribute (See Appendix A)
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_STRLONG - String Could Not Fit In Window
W_NOBORDER - Window Has No Border
EXAMPLE
FILE: HLP\HLPSHOW.C......Line: 181
FILE: SEL\SELATTR.C......Line: 147
FILE: TCXLDEMO.C.........Line: 1004, 1005, 1006, 1007, 1213, 2330
TesSeRact CXL V5.5 Documentation Page 65
---------------------------------------------------------------------------
NAME.........Wtitle <TcxlWin.H>
DESCRIPTION
Gives active window a title and displays title on top border line
of window. If active window has no border, then the window's
record will be updated, but no title will be visible.
PROTOTYPE....IntT CTYP Wtitle(ChrP ps, IntT tp, IntT ta);
ARGUMENTS
ps - Title String
tp - Title Position (See Appendix C [Title Positions])
ta - Attribute (See Appendix A)
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
ERR_MEM - Memory Allocation Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
EXAMPLE
FILE: HLP\HLPSHOW.C......Line: 86
FILE: SEL\SELFILE.C......Line: 195
FILE: WIN\WBORDER.C......Line: 38
FILE: WIN\WCHGATR.C......Line: 35
FILE: WIN\WPERROR.C......Line: 45
FILE: TCXLDEMO.C.........Line: 1003, 1162, 1212, 1570, 1574, 1668,
1710
Page 66 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
Active Shadow
---------------------------------------------------------------------------
NAME.........Wshadoff <TcxlWin.H>
DESCRIPTION
Removes the shadow from the active window, if one exists. This
function is only needed when you want to prematurely remove the
active window's shadow. The wclose() function automatically calls
Wshadoff() when it closes a window.
PROTOTYPE....IntT CTYP Wshadoff(NOARG);
ARGUMENTS....None
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
ERR_MEM - Memory Allocation Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
EXAMPLE
FILE: WIN\WCLOSE.C.......Line: 29
FILE: WIN\WDRAG.C........Line: 59
FILE: WIN\WHIDE.C........Line: 34
FILE: WIN\WMOVE.C........Line: 33
FILE: WIN\WSIZE.C........Line: 42
FILE: WIN\WSLIDE.C.......Line: 33
TesSeRact CXL V5.5 Documentation Page 67
---------------------------------------------------------------------------
NAME.........Wshadow <TcxlWin.H>
DESCRIPTION
Gives the active window a shadow. The shadow will be cast to the
right of the window and will be translucent (the characters
underneath the shadow will show through in the given attribute).
PROTOTYPE....IntT CTYP Wshadow(IntT at);
ARGUMENTS
at - Attribute for shadow (most effective is _BLACK | DGREY)
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
ERR_MEM - Memory Allocation Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
EXAMPLE
FILE: WIN\WCOPY.C........Line: 46
FILE: WIN\WDRAG.C........Line: 125
FILE: WIN\WMOVE.C........Line: 58
FILE: WIN\WSIZE.C........Line: 84
FILE: WIN\WSLIDE.C.......Line: 48
FILE: WIN\WUNHIDE.C......Line: 59
FILE: TCXLDEMO.C.........Line: 2164
Page 68 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
Active Cursor
---------------------------------------------------------------------------
NAME.........WcurGet <TcxlWin.H> Macro
.............WcurGt_
DESCRIPTION
Reads the current cursor coordinates of the active window.
PROTOTYPE....VOID WcurGet(VposT rc);
.............VposT CTYP WcurGt_(NOARG);
#define WcurGet(rc) (VposW(rc) = WcurGt_())
ARGUMENTS....None
RETURNS
A structure, filled in with the current row/column position of the
active window.
SEE ALSO
WposGet (Page 72)
VcurGet (Page 99)
VposGet (Page 103)
EXAMPLE
FILE: WIN\WCLREOS.C......Line: 28
FILE: WIN\WPUTC.C........Line: 44
FILE: WIN\WPUTCEN.C......Line: 29
FILE: WIN\WPUTRJ.C.......Line: 29
FILE: WIN\WPUTS.C........Line: 75, 120, 124
FILE: TCXLDEMO.C.........Line: 2634
TesSeRact CXL V5.5 Documentation Page 69
---------------------------------------------------------------------------
NAME.........WcurPut <TcxlWin.H> Macro
.............WcurPt_
DESCRIPTION
This function is functionally identical to Wgotoxy, except it takes
a Vpos structure as a parameter, instead of separate row/colum
figures.
PROTOTYPE....IntT WcurPut(VposT rc);
.............IntT CTYP WcurPt_(WrdT rc);
#define WcurPut(rc) (WcurPt_(VposW(rc)))
ARGUMENTS
rc - Vpos structure with Window coordinates
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_INVCOORD - Invalid Coordinates
SEE ALSO
WcurPut (Page 70)
Wgotoxy (Page 71)
Wpgotoxy (Page 72)
VcurPut (Page 101)
Vgotoxy (Page 103)
EXAMPLE
FILE: MNU\MNUSHOW.C......Line: 380, 397
FILE: ENT\ENTSHOW.C......Line: 104, 108
FILE: WIN\WCLREOS.C......Line: 35, 38
FILE: WIN\WPUTCEN.C......Line: 36
FILE: WIN\WPUTRJ.C.......Line: 36
FILE: WIN\WPUTS.C........Line: 126
Page 70 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........Wgotoxy <TcxlWin.H>
DESCRIPTION
This function moves the cursor in the active window to the passed
row/column coordinates.
PROTOTYPE....IntT CTYP Wgotoxy(IntT wr, IntT wc);
ARGUMENTS
wr - Window Row
wc - Window Column
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_INVCOORD - Invalid Coordinates
SEE ALSO
WcurPut (Page 70)
Wpgotoxy (Page 72)
VcurPut (Page 101)
Vgotoxy (Page 103)
EXAMPLE
FILE: ENT\ENTFLD.C.......Line: 38
FILE: SEL\SELATTR.C......Line: 52
FILE: SEL\_SELECT.C......Line: 438
FILE: WIN\WBORDER.C......Line: 36
FILE: WIN\WCLRWIN.C......Line: 32
FILE: WIN\WOPEN.C........Line: 95
FILE: WIN\WPGOTOXY.C.....Line: 30
FILE: WIN\WSIZE.C........Line: 73
FILE: TCXLDEMO.C.........Line: 1645, 2102, 2470
TesSeRact CXL V5.5 Documentation Page 71
---------------------------------------------------------------------------
NAME.........Wpgotoxy <TcxlWin.H>
DESCRIPTION
Sets cursor coordinates within the active window. If cursor
coordinates are out of the window, wpgotoxy() will try to wrap them
around to fit in the window.
PROTOTYPE....IntT CTYP Wpgotoxy(IntT wr, IntT wc);
ARGUMENTS
wr - Window Row
wc - Window Column
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
SEE ALSO
WcurPut (Page 70)
Wgotoxy (Page 71)
VcurPut (Page 101)
Vgotoxy (Page 103)
---------------------------------------------------------------------------
NAME.........WposGet <TcxlWin.H> Macro
DESCRIPTION
Reads the current cursor coordinates of the active window.
PROTOTYPE....VOID WposGet(IntT r, IntT c);
#define WposGet(r,c) ((c)=MsInt(WcurGt_()); (r)=((c)>>8); (c)&=0xFF)
ARGUMENTS
r - Window Row
c - Window Column
RETURNS
The current row/column position of the active window.
SEE ALSO
WcurGet (Page 69)
VcurGet (Page 99)
VposGet (Page 103)
Page 72 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
Active Window Formatted Output
---------------------------------------------------------------------------
NAME.........WdupChr <TcxlWin.H>
DESCRIPTION
Displays a character a specified number of times in the active window.
Characters will be displayed in the window's current text attribute
(See Appendix A). Control characters and escape sequences (See
Appendix D) are recognized; Cursor position is updated.
PROTOTYPE....VOID CTYP WdupChr(IntT ch, IntT nd);
ARGUMENTS
ch - Character to Display
nd - Number of times to display character
RETURNS......None
SEE ALSO
WdupChrA (Page 79)
EXAMPLE
FILE: WIN\WPUTS.C........Line: 144
---------------------------------------------------------------------------
NAME.........WdupStr <TcxlWin.H>
DESCRIPTION
Displays a string a specified number of times in the active window.
Characters will be displayed in the window's current text attribute
(See Appendix A). Control characters and escape sequences (See
Appendix D) are recognized; Cursor position is updated.
PROTOTYPE....VOID CTYP WdupStr(ChrP ps, IntT nd);
ARGUMENTS
ps - String to Display
nd - Number of times to display string
RETURNS......None
SEE ALSO
WdupStrA (Page 80)
TesSeRact CXL V5.5 Documentation Page 73
---------------------------------------------------------------------------
NAME.........Wputc <TcxlWin.H>
DESCRIPTION
Displays a character at the current window coordinates, using the
current text attribute (See Appendix A). Control characters and
escape sequences (See Appendix D) are recognized; Cursor position
is updated.
PROTOTYPE....VOID CTYP Wputc(IntT ch);
ARGUMENTS
ch - Character to Display
RETURNS......None
SEE ALSO
Wprtc (Page 81)
Vprintc (Page 95)
Vputc (Page 97)
EXAMPLE
FILE: WIN\WDUPCHR.C......Line: 22
FILE: WIN\WPERROR.C......Line: 47
FILE: WIN\WPUTFMT.C......Line: 40, 50, 53, 60
FILE: WIN\WPUTNS.C.......Line: 28
FILE: WIN\WPUTSW.C.......Line: 42
FILE: WIN\WPUTSW.C.......Line: 47
FILE: INP\KWGETCF.C......Line: 48
FILE: INP\KWGETCH.C......Line: 30
FILE: INP\KWGETFMT.C.....Line: 39, 49, 109
FILE: INP\KWGETSN.C......Line: 44, 45, 46, 55
FILE: INP\KWGETST.C......Line: 30, 37, 38, 39
FILE: TCXLDEMO.C.........Line: 1035, 1045
Page 74 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........Wputs <TcxlWin.H>
DESCRIPTION
Displays a string at the current window coordinates, using the
current text attribute (See Appendix A). Control characters and
escape sequences (See Appendix D) are recognized; Cursor position
is updated.
PROTOTYPE....VOID CTYP Wputs(ChrP ps);
ARGUMENTS
ps - String to Display
RETURNS......None
SEE ALSO
Wprts (Page 82)
Vprints (Page 96)
EXAMPLE
FILE: MNU\MNUSHOW.C......Line: 399
FILE: HLP\HLPSHOW.C......Line: 107, 113, 114, 115, 266, 273, 301,
321, 322, 323
FILE: WIN\WDUPSTR.C......Line: 22
FILE: WIN\WPERROR.C......Line: 48
FILE: WIN\WPUTCEN.C......Line: 37
FILE: WIN\WPUTF.C........Line: 34
FILE: WIN\WPUTRJ.C.......Line: 37
FILE: WIN\WPUTSW.C.......Line: 38, 50, 62, 72
FILE: INP\KWGETYN.C......Line: 29, 31, 33
FILE: TCXLDEMO.C.........Line: 1217, 1264, 1286, 1307, 1380, 1398,
1494, 1498, 1505, 1509, 1513, 1517, 1521,
1525, 1528, 1531, 1535, 1539, 1754, 2142,
2150, 2382, 2437, 2466, 2509, 2536
TesSeRact CXL V5.5 Documentation Page 75
---------------------------------------------------------------------------
NAME.........Wputns <TcxlWin.H>
DESCRIPTION
Displays a string at the current window coordinates, using the
current text attribute (See Appendix A). The input width will
determine how many characters are actually displayed. Control
characters and escape sequences (See Appendix D) are recognized;
Cursor position is updated.
PROTOTYPE....VOID CTYP Wputns(ChrP ps, IntT wd);
ARGUMENTS
ps - String to Display
wd - Width of Output String
RETURNS......None
SEE ALSO
Wprtns (Page 83)
---------------------------------------------------------------------------
NAME.........Wputsw <TcxlWin.H>
DESCRIPTION
Displays a string at the current window coordinates, using the
current text attribute (See Appendix A). Words will be wrapped
around to the next line if necessary. Control characters and
escape sequences (See Appendix D) are recognized; Cursor position
is updated.
PROTOTYPE....VOID CTYP Wputsw(ChrP ps);
ARGUMENTS
ps - String to Display
RETURNS......None
SEE ALSO
Wprtsw (Page 83)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1130, 2106, 2109
Page 76 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........Wputf <TcxlWin.H>
DESCRIPTION
Displays a formatted string to the active window at the current
cursor position using the current text attribute (See Appendix A).
Works like the standard printf() function does. Control characters
and escape sequences (See Appendix D) are recognized; Cursor
position is updated.
PROTOTYPE....IntT CDC wputf(ChrP fs, ...);
ARGUMENTS
fs - Format String (See your compiler's documentation)
... - Additional Arguments
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
SEE ALSO
Wprtf (Page 84)
---------------------------------------------------------------------------
NAME.........WputFmt <TcxlWin.H>
DESCRIPTION
Displays a string to active window using a CXL format string. If a
character in a string doesn't match its format control character,
it will be displayed as a '?'. Control characters and escape
sequences (See Appendix D) are recognized; Cursor position is
updated.
PROTOTYPE....IntT CTYP WputFmt(ChrP fs, ChrP ps);
ARGUMENTS
fs - Format Control String (See Appendix D)
ps - String to Display
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_INVFORMT - Invalid Format String
W_STRLONG - String Could Not Fit In Window
SEE ALSO
WprtFmt (Page 85)
TesSeRact CXL V5.5 Documentation Page 77
---------------------------------------------------------------------------
NAME.........WputCen <TcxlWin.H>
DESCRIPTION
Centers a string in the active window, on the current row, using
the current text attribute (See Appendix A). Control characters
and escape sequences (See Appendix D) are recognized; Cursor
position is updated.
PROTOTYPE....IntT CTYP WputCen(ChrP ps);
ARGUMENTS
ps - String to Center
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_STRLONG - String Could Not Fit In Window
SEE ALSO
WprtCen (Page 86)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 816, 820, 824, 828, 1036, 1046,
1136, 1471, 1472, 1492
---------------------------------------------------------------------------
NAME.........Wputrj <TcxlWin.H>
DESCRIPTION
Right-justifies a string in the active window, on the current row,
using the current text attribute (See Appendix A). Control
characters and escape sequences (See Appendix D) are recognized;
Cursor position is updated.
PROTOTYPE....IntT CTYP Wputrj(ChrP ps);
ARGUMENTS
ps - String to Justify
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_STRLONG - String Could Not Fit In Window
SEE ALSO
Wprtrj (Page 87)
Page 78 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME........._Wputl <_TcxlWin.H>
DESCRIPTION
Return length of string, skipping any TCXL Output escape characters
(See Appendix D), as well as skipping all control characters. Used
internally by formatted output routines.
PROTOTYPE....IntT CTYP _Wputl(ChrP tp);
ARGUMENTS
tp - Output String
RETURNS
Length of Output String
EXAMPLE
FILE: WIN\WPERROR.C......Line: 27
FILE: WIN\WPUTCEN.C......Line: 31
FILE: WIN\WPUTRJ.C.......Line: 31
---------------------------------------------------------------------------
Active Window Unformatted Output
---------------------------------------------------------------------------
NAME.........WdupChrA <TcxlWin.H>
DESCRIPTION
Displays a character a specified number of times in the active
window at the specified coordinates, using the specified attribute
(See Appendix A). Control characters and escape sequences are NOT
recognized; Cursor position is NOT updated.
PROTOTYPE....VOID CTYP WdupChrA(IntT wr, IntT wc, IntT at,
IntT ch, IntT nd);
ARGUMENTS
wr - Window Row
wc - Window Column
at - Attribute (See Appendix A)
ch - Character to Display
nd - Number of times to display character
RETURNS......None
SEE ALSO
WdupChr (Page 73)
TesSeRact CXL V5.5 Documentation Page 79
---------------------------------------------------------------------------
NAME.........WdupStrA <TcxlWin.H>
DESCRIPTION
Displays a string a specified number of times in the active window
at the specified coordinates, using the specified attribute (See
Appendix A). Control characters and escape sequences are NOT
recognized; Cursor position is NOT updated.
PROTOTYPE....VOID CTYP WdupStrA(IntT wr, IntT wc, IntT at,
ChrP ps, IntT nd);
ARGUMENTS
wr - Window Row
wc - Window Column
at - Attribute (See Appendix A)
ps - String to Display
nd - Number of times to display string
RETURNS......None
SEE ALSO
WdupStr (Page 73)
Page 80 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........Wprtc <TcxlWin.H>
DESCRIPTION
Displays a character at the specified coordinates, using the
specified attribute (See Appendix A). Control characters and
escape sequences are NOT recognized; Cursor position is NOT
updated.
PROTOTYPE....IntT CTYP Wprtc(IntT wr, IntT wc, IntT at, IntT ch);
ARGUMENTS
wr - Window Row
wc - Window Column
at - Attribute (See Appendix A)
ch - Character to Display
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_INVCOORD - Invalid Coordinates
SEE ALSO
Wputc (Page 74)
Vprintc (Page 95)
EXAMPLE
FILE: MNU\MNUSHOW.C......Line: 394
FILE: ENT\ENTSHOW.C......Line: 333, 503
FILE: ENT\_FLDDSP.C......Line: 112, 113, 129, 143, 150, 155, 161,
162
FILE: SEL\_SELECT.C......Line: 441
FILE: WIN\WDUPCHRA.C.....Line: 22
FILE: WIN\WPRTFMT.C......Line: 40, 50, 53, 60
FILE: WIN\WPRTNS.C.......Line: 28
TesSeRact CXL V5.5 Documentation Page 81
---------------------------------------------------------------------------
NAME.........Wprts <TcxlWin.H>
DESCRIPTION
Displays a string at the specified coordinates, using the specified
attribute (See Appendix A). Control characters and escape
sequences are NOT recognized; Cursor position is NOT updated.
PROTOTYPE....IntT CTYP Wprts(IntT wr, IntT wc, IntT at, ChrP ps);
ARGUMENTS
wr - Window Row
wc - Window Column
at - Attribute (See Appendix A)
ps - String to Display
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_INVCOORD - Invalid Coordinates
SEE ALSO
Wputs (Page 75)
Vprints (Page 96)
EXAMPLE
FILE: SEL\SELATTR.C......Line: 141
FILE: SEL\SELTXT.C.......Line: 34
FILE: WIN\WDUPSTRA.C.....Line: 22
FILE: WIN\WPRTF.C........Line: 34
FILE: WIN\WPRTSW.C.......Line: 38, 54, 66, 76
FILE: TCXLDEMO.C.........Line: 832, 1014, 1660
Page 82 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........Wprtns <TcxlWin.H>
DESCRIPTION
Displays a string at the specified coordinates, using the specified
attribute (See Appendix A). The input width will determine how
many characters are actually displayed. Control characters and
escape sequences are NOT recognized; Cursor position is NOT
updated.
PROTOTYPE....VOID CTYP Wprtns(IntT wr, IntT wc, IntT at, ChrP ps, IntT wd);
ARGUMENTS
wr - Window Row
wc - Window Column
at - Attribute (See Appendix A)
ps - String to Display
wd - Width of Output String
RETURNS......None
SEE ALSO
Wputns (Page 76)
EXAMPLE
FILE: SEL\_SELECT.C......Line: 456
---------------------------------------------------------------------------
NAME.........Wprtsw <TcxlWin.H>
DESCRIPTION
Displays a string at the specified coordinates, using the specified
attribute (See Appendix A). Words will be wrapped around to the
next line if necessary. Control characters and escape sequences
are NOT recognized; Cursor position is NOT updated.
PROTOTYPE....IntT CTYP Wprtsw(IntT wr, IntT wc, IntT at, ChrP ps);
ARGUMENTS
wr - Window Row
wc - Window Column
at - Attribute (See Appendix A)
ps - String to Display
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_INVCOORD - Invalid Coordinates
SEE ALSO
Wputsw (Page 76)
TesSeRact CXL V5.5 Documentation Page 83
---------------------------------------------------------------------------
NAME.........Wprtf <TcxlWin.H>
DESCRIPTION
Displays a formatted string to the active window at the specified
coordinates, using the specified attribute (See Appendix A). Works
like the standard printf() function does. Control characters and
escape sequences are NOT recognized; Cursor position is NOT
updated.
PROTOTYPE....IntT CDC wprtf(IntT wr, IntT wc, IntT at, ChrP fs, ...);
ARGUMENTS
wr - Window Row
wc - Window Column
at - Attribute (See Appendix A)
fs - Format String (See your compiler's documentation)
... - Additional Arguments
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_INVCOORD - Invalid Coordinates
SEE ALSO
Wputf (Page 77)
Page 84 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........WprtFmt <TcxlWin.H>
DESCRIPTION
Displays a string to active window using a CXL format string at the
specified coordinates, using the specified attribute (See Appendix
A). If a character in a string doesn't match its format control
character, it will be displayed as a '?'. Control characters and
escape sequences are NOT recognized; Cursor position is NOT
updated.
PROTOTYPE....IntT CTYP WprtFmt(IntT wr, IntT wc, IntT at, ChrP fs,
ChrP ps);
ARGUMENTS
wr - Window Row
wc - Window Column
at - Attribute (See Appendix A)
fs - Format Control String (See Appendix D)
ps - String to Display
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_INVCOORD - Invalid Coordinates
W_INVFORMT - Invalid Format String
W_STRLONG - String Could Not Fit In Window
SEE ALSO
WputFmt (Page 77)
TesSeRact CXL V5.5 Documentation Page 85
---------------------------------------------------------------------------
NAME.........WprtCen <TcxlWin.H>
DESCRIPTION
Centers a string in the active window at the specified coordinates,
using the specified attribute (See Appendix A). Control characters
and escape sequences are NOT recognized; Cursor position is NOT
updated.
PROTOTYPE....IntT CTYP WprtCen(IntT wr, IntT at, ChrP ps);
ARGUMENTS
wr - Window Row
at - Attribute (See Appendix A)
ps - String to Center
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_INVCOORD - Invalid Coordinates
W_STRLONG - String Could Not Fit In Window
SEE ALSO
WputCen (Page 78)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 833, 840, 842, 1248, 2115, 2345,
2354
Page 86 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........Wprtrj <TcxlWin.H>
DESCRIPTION
Right justifies a string in the active window at the specified
coordinates, using the specified attribute (See Appendix A).
Control characters and escape sequences are NOT recognized; Cursor
position is NOT updated.
PROTOTYPE....IntT CTYP Wprtrj(IntT wr, IntT wc, IntT at, ChrP ps);
ARGUMENTS
wr - Window Row
wc - Window Column
at - Attribute (See Appendix A)
ps - String to Justify
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_INVCOORD - Invalid Coordinates
W_STRLONG - String Could Not Fit In Window
SEE ALSO
Wputrj (Page 78)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 834
TesSeRact CXL V5.5 Documentation Page 87
---------------------------------------------------------------------------
Display System
Window Builders
---------------------------------------------------------------------------
NAME.........VclrBox <TcxlVid.H> Macro
DESCRIPTION
Clears a section of the screen using the text attribute (See
Appendix A) at the current cursor position.
PROTOTYPE....VOID VclrBox(VposT s, VposT e);
#define VclrBox(s,e) (VfilBox((s),(e),
' ',(Vgetw_(VposR(s),VposC(s))>>8)))
ARGUMENTS
s - Start Position
e - End Position
RETURNS......None
SEE ALSO
Wclear (Page 55)
WclrWin (Page 57)
Page 88 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........VdrwBox <TcxlVid.H> Macro
.............VdrwBx_
DESCRIPTION
"Draws" a text box on the screen.
PROTOTYPE....VOID VdrwBox(VposT s, VposT e, IntT b, IntT a);
.............VOID CTYP VdrwBx_(WrdT s, WrdT e, IntT b, IntT a);
#define VdrwBox(s,e,b,a) (VdrwBx_(VposW(s),VposW(e),(b),(a)))
ARGUMENTS
s - Start Position
e - End Position
b - Border Type (See Appendix C [Border Types])
a - Attribute (See Appendix A)
RETURNS......None
SEE ALSO
Wborder (Page 61)
EXAMPLE
FILE: WIN\WBORDER.C......Line: 31
FILE: WIN\WCHGATR.C......Line: 33
FILE: WIN\WDRWBOX.C......Line: 42
FILE: WIN\WOPEN.C........Line: 87
FILE: WIN\WTITLE.C.......Line: 34
---------------------------------------------------------------------------
NAME.........VfilBox <TcxlVid.H> Macro
.............VfilBx_
DESCRIPTION
Fills in a region of the screen with a specified character and
attribute (See Appendix A).
PROTOTYPE....VOID VfilBox(VposT s, VposT e, IntT c, IntT a);
.............VOID CTYP VfilBx_(WrdT s, WrdT e, IntT c, IntT a);
#define VfilBox(s,e,c,a) (VfilBx_(VposW(s),VposW(e),(c),(a)))
ARGUMENTS
s - Start Position
e - End Position
c - Character to fill
a - Attribute (See Appendix A)
RETURNS......None
EXAMPLE
FILE: WIN\WCLRWIN.C......Line: 31
FILE: WIN\WFILBOX.C......Line: 41
TesSeRact CXL V5.5 Documentation Page 89
---------------------------------------------------------------------------
NAME.........Vsave <TcxlVid.H>
DESCRIPTION
Saves the current screen to a buffer.
PROTOTYPE....VcelP CTYP Vsave(NOARG);
ARGUMENTS....None
RETURNS
Address of the buffer save area, or NULL if a memory allocation error
occurred.
SEE ALSO
Wsave (Page 42)
Wrestore (Page 41)
Vrestore (Page 90)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1433
---------------------------------------------------------------------------
NAME.........Vrestore <TcxlVid.H>
DESCRIPTION
Restores a previously-saved buffer to the video.
PROTOTYPE....VOID CTYP Vrestore(VcelP b);
ARGUMENTS
b - Previously Saved Buffer
RETURNS......None
SEE ALSO
Wsave (Page 42)
Wrestore (Page 41)
Vsave (Page 90)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1457
Page 90 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
Video Control
---------------------------------------------------------------------------
NAME.........VidInit <TcxlVid.H>
DESCRIPTION
This function intializes the TCXL Display System and Video Access
Subsystem. It is called automatically by TcxlInit (Page 142) and
is documented here for information purposes only.
PROTOTYPE....VOID CTYP VidInit(NOARG);
ARGUMENTS....None
RETURNS......None
SEE ALSO
VidTerm (Page 92)
EXAMPLE
FILE: HDW\TCXLINIT.C.....Line: 74
---------------------------------------------------------------------------
NAME.........VidMode <TcxlVid.H>
DESCRIPTION
This function either gets the current video mode (if the passed
parameter is 0xFF), or it sets the display mode to the passed
parameter. In either case, the _VidCtl (See User's Guide)
structure is updated.
PROTOTYPE....IntT PAS VidMode(IntT m);
ARGUMENTS
m - New Video Mode, or 0xFF to return current mode.
RETURNS
Current or New Video Mode
SEE ALSO
_VuvSet (Page 173)
EXAMPLE
FILE: DSP\VIDINIT.C......Line: 52
FILE: DSP\VSETLIN.C......Line: 58
TesSeRact CXL V5.5 Documentation Page 91
---------------------------------------------------------------------------
NAME.........VidParm <TcxlVid.H>
DESCRIPTION
Sets video display parameters.
PROTOTYPE....IntT CTYP VidParm(IntT p);
ARGUMENTS
p - Video Display Parameter (VP_????).
RETURNS
Nonzero if invalid parameter.
SEE ALSO
VidInit (Page 91)
VidType (Page 93)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 776, 780, 784
---------------------------------------------------------------------------
NAME.........VidTerm <TcxlVid.H>
DESCRIPTION
Terminates the Display System and Video Access Subsystems. In TCXL
5.5, this is a null function. This function is automatically
called by the C compiler's atexit() chain.
PROTOTYPE....VOID CTYP VidTerm(NOARG);
ARGUMENTS....None
RETURNS......None
SEE ALSO
VidInit (Page 91)
EXAMPLE
FILE: HDW\TCXLINIT.C.....Line: 93
Page 92 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........VidType <TcxlVid.H>
DESCRIPTION
Returns the display adapter type.
PROTOTYPE....IntT CTYP VidType(NOARG);
ARGUMENTS....None
RETURNS
The current display adapter type.
SEE ALSO
VidInit (Page 91)
_VuvGet (Page 172)
EXAMPLE
FILE: DSP\VIDINIT.C......Line: 51
---------------------------------------------------------------------------
NAME.........VsetLin <TcxlVid.H>
DESCRIPTION
Sets the number of lines on the display. Do NOT use this function
if UltraVision has been detected. Use _VuvSet (Page 173) instead.
PROTOTYPE....IntT CTYP VsetLin(IntT n);
ARGUMENTS
n - Number of lines (only 25, 43 and 50 are valid).
RETURNS
Nonzero if invalid line value.
SEE ALSO
_VuvGet (Page 172)
_VuvSet (Page 173)
VidMode (Page 91)
VidInit (Page 91)
VidType (Page 93)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 979, 2071, 2074, 2077
TesSeRact CXL V5.5 Documentation Page 93
---------------------------------------------------------------------------
NAME.........Vclear <TcxlVid.H>
DESCRIPTION
Clears the screen using the passed text attribute (See Appendix A)
and homes the cursor.
PROTOTYPE....VOID CTYP Vclear(IntT a);
ARGUMENTS
a - Attribute (See Appendix A)
RETURNS......None
SEE ALSO
Wclear (Page 55)
EXAMPLE
FILE: DSP\VCLRSCR.C......Line: 24
FILE: TCXLDEMO.C.........Line: 1440
---------------------------------------------------------------------------
NAME.........VclrEol <TcxlVid.H>
DESCRIPTION
Clears to the end of the video line using the text attribute (See
Appendix A) under the cursor.
PROTOTYPE....VOID CTYP VclrEol(NOARG);
ARGUMENTS....None
RETURNS......None
SEE ALSO
WclrEol (Page 56)
---------------------------------------------------------------------------
NAME.........VclrScr <TcxlVid.H>
DESCRIPTION
Clears the screen using the text attribute (See Appendix A) under
the cursor, and homes the cursor.
PROTOTYPE....VOID CTYP VclrScr(NOARG);
ARGUMENTS....None
RETURNS......None
SEE ALSO
WclrWin (Page 57)
Page 94 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
Video Output
---------------------------------------------------------------------------
NAME.........Vprintc <TcxlVid.H>
DESCRIPTION
Displays a character to the screen at a specified location, using a
specified attribute (See Appendix A). Does not recognize control
characters and does not affect cursor position.
PROTOTYPE....VOID CTYP Vprintc(IntT r, IntT c, IntT a, IntT x);
ARGUMENTS
r - Row
c - Column
a - Attribute (See Appendix A)
x - Character to Display
RETURNS......None
SEE ALSO
Wputc (Page 74)
Wprtc (Page 81)
Vattrib (Page 107)
Vprints (Page 96)
EXAMPLE
FILE: SEL\_SELECT.C......Line: 102, 103
FILE: WIN\WBPRINTC.C.....Line: 50
FILE: WIN\WCLREOL.C......Line: 30
FILE: WIN\WDRWHOR.C......Line: 121, 125, 130
FILE: WIN\WDRWVER.C......Line: 123, 127, 132
FILE: WIN\WPRTC.C........Line: 33
FILE: WIN\WPRTS.C........Line: 41
FILE: WIN\WSHADOFF.C.....Line: 38, 40, 47
FILE: WIN\WTITLE.C.......Line: 61
FILE: WIN\WWPRINTS.C.....Line: 89, 143
TesSeRact CXL V5.5 Documentation Page 95
---------------------------------------------------------------------------
NAME.........Vprints <TcxlVid.H>
DESCRIPTION
Displays a string to the screen at a specified location, using a
specified attribute (See Appendix A). Does not recognize control
characters and does not affect cursor position.
PROTOTYPE....VOID CTYP Vprints(IntT r, IntT c, IntT a, ChrP s);
ARGUMENTS
r - Row
c - Column
a - Attribute (See Appendix A)
s - String to Display
RETURNS......None
SEE ALSO
Wputs (Page 75)
Wprts (Page 82)
Vattrib (Page 107)
Vprintc (Page 95)
EXAMPLE
FILE: WIN\WMESSAGE.C.....Line: 33
FILE: WIN\WPRTCEN.C......Line: 39
FILE: WIN\WPRTRJ.C.......Line: 38
FILE: WIN\WPRTS.C........Line: 37, 60
FILE: TCXLDEMO.C.........Line: 2606
---------------------------------------------------------------------------
NAME.........VputSpa <TcxlVid.H>
DESCRIPTION
Displays a specified number of spaces to the screen using the text
attribute (See Appendix A) of the character under the cursor.
PROTOTYPE....VOID PAS VputSpa(IntT n);
ARGUMENTS
n - Number of spaces to display
RETURNS......None
EXAMPLE
FILE: DSP\VCLREOL.C......Line: 25
Page 96 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........Vputc
DESCRIPTION
Displays a character/attribute (See Appendix A) on the display at
the specified position, using the video BIOS routines.
PROTOTYPE....VOID CTYP Vputc(IntT r, IntT c, IntT x, IntT a);
ARGUMENTS
r - Row
c - Column
x - Character to Display
a - Attribute (See Appendix A)
RETURNS......None
EXAMPLE
FILE: WIN\WPUTC.C........Line: 60
FILE: WIN\WPUTS.C........Line: 153
---------------------------------------------------------------------------
NAME.........Vputw <TcxlVid.H> Macro
.............Vputw_
DESCRIPTION
Put a VcelT to the screen
PROTOTYPE....VOID Vputw(IntT r, IntT c, VcelT x);
.............VOID CTYP Vputw_(IntT r, IntT c, WrdT x);
#define Vputw(r,c,x) (Vputw_((r),(c), VcelW(x)))
ARGUMENTS
r - Row
c - Column
x - VcelT to display
RETURNS......None
EXAMPLE
FILE: WIN\WACTIV.C.......Line: 173
FILE: WIN\WCHGATR.C......Line: 40
FILE: WIN\WDRAG.C........Line: 104
FILE: WIN\WDRAG.C........Line: 114
FILE: WIN\WSHADOW.C......Line: 49, 51, 60
FILE: WIN\WSIZE.C........Line: 56, 60, 65
TesSeRact CXL V5.5 Documentation Page 97
---------------------------------------------------------------------------
NAME.........Vscroll <TcxlVid.H> Macro
.............Vscrol_
DESCRIPTION
Calls the video BIOS to scroll a region of teh display up or down.
PROTOTYPE....VOID Vscroll(IntT d, VposT s, VposT e, IntT n, IntT a);
.............VOID PAS Vscrol_(IntT d, WrdT s, WrdT e, IntT n, IntT a);
#define Vscroll(d,s,e,n,a) (Vscrol_((d),VposW(s),VposW(e),(n),(a)))
ARGUMENTS
d - Direction (0=down, 1=up)
s - Upper Left Corner
e - Lower Right Corner
n - Number of Lines to Scroll
a - Attribute (See Appendix A) to clear area to
RETURNS......None
EXAMPLE
FILE: WIN\WSCRBOX.C......Line: 47
FILE: WIN\WSCRWIN.C......Line: 41
FILE: DSP\VCLEAR.C.......Line: 27
---------------------------------------------------------------------------
NAME.........Vgetw <TcxlVid.H> Macro
.............Vgetw_
DESCRIPTION
Get char/attr from screen as a VcelT object
PROTOTYPE....VOID Vgetw(IntT r, IntT c, VcelT x);
.............WrdT CTYP Vgetw_(IntT r, IntT c);
#define Vgetw(r,c,x) (VcelW(x)=Vgetw_((r),(c)))
ARGUMENTS
r - Row
c - Column
RETURNS
x - VcelT from screen.
EXAMPLE
FILE: WIN\WACTIV.C.......Line: 167
FILE: WIN\WCHGATR.C......Line: 38
FILE: WIN\WDRWHOR.C......Line: 101, 105
FILE: WIN\WDRWVER.C......Line: 103, 107
FILE: WIN\WSHADOW.C......Line: 44, 45, 57
FILE: WIN\WSIZE.C........Line: 55
Page 98 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
Cursor Control
---------------------------------------------------------------------------
NAME.........VcurGet <TcxlVid.H> Macro
.............VcurGt_
DESCRIPTION
Reads the current cursor location.
PROTOTYPE....VOID VcurGet(VposT v);
.............WrdT PAS VcurGt_(NOARG);
#define VcurGet(v) (VposW(v)=VcurGt_())
ARGUMENTS
v - Position
RETURNS......None
SEE ALSO
VposGet (Page 103)
WcurGet (Page 69)
WposGet (Page 72)
EXAMPLE
FILE: WIN\WCURGET.C......Line: 29
FILE: WIN\WPERROR.C......Line: 29
FILE: WIN\WWPRINTS.C.....Line: 64
FILE: DSP\VATRREV.C......Line: 26
FILE: DSP\VATRSET.C......Line: 25
FILE: DSP\VCLREOL.C......Line: 24
FILE: DSP\VPRINTC.C......Line: 25
FILE: DSP\VPRINTS.C......Line: 25
FILE: INP\KEYGETC.C......Line: 140
FILE: TCXLDEMO.C.........Line: 743
TesSeRact CXL V5.5 Documentation Page 99
---------------------------------------------------------------------------
NAME.........VcurHid <TcxlVid.H>
DESCRIPTION
Hide or show the video cursor, and return the current cursor state.
PROTOTYPE....IntT CTYP VcurHid(IntT s);
ARGUMENTS
s - Hide if zero, Show if positive, just return state if negative.
RETURNS
FALSE if previously hidden, TRUE if previously shown.
EXAMPLE
FILE: HLP\HLPSHOW.C......Line: 93, 140
FILE: SEL\SELATTR.C......Line: 136
FILE: DSP\VCURSET.C......Line: 26
FILE: TCXLDEMO.C.........Line: 898, 981, 1058, 1089, 1091, 1095,
1098, 1157, 1180, 1196, 1228, 1382, 1386,
1566, 1626, 1644, 1652, 1711, 2047, 2085,
2197, 2219, 2230, 2320, 2346, 2424, 2452
Page 100 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........VcurPut <TcxlVid.H> Macro
.............VcurPt_
DESCRIPTION
Set a new cursor location
PROTOTYPE....VOID VcurPut(VposT v);
.............VOID PAS VcurPt_(WrdT v);
#define VcurPut(v) (VcurPt_(VposW(v)))
ARGUMENTS
v - New Position
RETURNS......None
SEE ALSO
Vgotoxy (Page 103)
WcurPut (Page 70)
Wgotoxy (Page 71)
EXAMPLE
FILE: WIN\WACTIV.C.......Line: 120
FILE: WIN\WCLOSE.C.......Line: 38
FILE: WIN\WCURPUT.C......Line: 38
FILE: WIN\WDRAG.C........Line: 126
FILE: WIN\WGOTOXY.C......Line: 35
FILE: WIN\WHIDE.C........Line: 52
FILE: WIN\WMOVE.C........Line: 59
FILE: WIN\WPERROR.C......Line: 52
FILE: WIN\WPUTC.C........Line: 71
FILE: WIN\WPUTS.C........Line: 74, 158
FILE: WIN\WSHADOW.C......Line: 64
FILE: WIN\WUNHIDE.C......Line: 62
FILE: WIN\WWPRINTS.C.....Line: 94
FILE: DSP\VATRREV.C......Line: 32
FILE: DSP\VATRSET.C......Line: 28
FILE: DSP\VCLEAR.C.......Line: 28
FILE: DSP\VPRINTC.C......Line: 29
FILE: DSP\VPRINTS.C......Line: 29
FILE: INP\KEYGETC.C......Line: 145
FILE: TCXLDEMO.C.........Line: 2196
TesSeRact CXL V5.5 Documentation Page 101
---------------------------------------------------------------------------
NAME.........VcurSet <TcxlVid.H>
DESCRIPTION
Set the cursor size
PROTOTYPE....VOID CTYP VcurSet(IntT s);
ARGUMENTS
s - Underline cursor if zero, block cursor otherwise.
RETURNS......None
EXAMPLE
FILE: ENT\ENTSHOW.C......Line: 97, 192, 196, 305
---------------------------------------------------------------------------
NAME.........VcurSiz <TcxlVid.H> Macro
.............VcurSz_
DESCRIPTION
Sets and gets the current cursor size/shape.
PROTOTYPE....VOID VcurSiz(VcseT c);
.............WrdT PAS VcurSz_(WrdT c);
#define VcurSiz(c) (VcseW(c)=VcurSz_(VcseW(c)))
ARGUMENTS
c - If 0:0, return cursor start/stop lines; otherwise, set
cursor shape.
RETURNS
Current Cursor Size
EXAMPLE
FILE: SEL\SELATTR.C......Line: 135, 148
FILE: DSP\VCURHID.C......Line: 26, 35, 40
FILE: DSP\VCURSET.C......Line: 49
FILE: DSP\VSETLIN.C......Line: 53
FILE: INP\KEYGETC.C......Line: 139, 144
Page 102 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........Vgotoxy <TcxlVid.H>
DESCRIPTION
Sets the cursor position to the passed row/col coordinate.
PROTOTYPE....VOID PAS Vgotoxy(IntT r, IntT c);
ARGUMENTS
r - Row
c - Column
RETURNS......None
SEE ALSO
VcurPut (Page 101)
WcurPut (Page 70)
Wgotoxy (Page 71)
---------------------------------------------------------------------------
NAME.........VposGet <TcxlVid.H> Macro
DESCRIPTION
Reads the current cursor location.
PROTOTYPE....VOID PAS VposGet(IntT r, IntT c);
#define VposGet(r,c) ((c)=MsInt(VcurGt_()); (r)=((c)>>8); (c)&=0xFF)
ARGUMENTS
r - Row
c - Column
RETURNS
The current cursor location
SEE ALSO
VcurGet (Page 99)
WcurGet (Page 69)
WposGet (Page 72)
TesSeRact CXL V5.5 Documentation Page 103
---------------------------------------------------------------------------
Attribute Control
---------------------------------------------------------------------------
NAME.........VatrInv <TcxlVid.H>
DESCRIPTION
Returns the inverse of the given text attribute (See Appendix A).
PROTOTYPE....IntT PAS VatrInv(IntT a);
ARGUMENTS
a - Attribute (See Appendix A) to Invert
RETURNS
Inverted Attribute
EXAMPLE
FILE: MNU\MNUEND.C.......Line: 50
FILE: ENT\ENTDEF.C.......Line: 35
FILE: SEL\_SELECT.C......Line: 88
FILE: WIN\WPUTS.C........Line: 117
Page 104 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........VatrMap <TcxlVid.H>
DESCRIPTION
Translates a color text attribute (See Appendix A) into its
approximate monochrome equivalent. All of CXL's video functions
automatically call this, so you would only need to call this for
your own functions.
PROTOTYPE....IntT CTYP VatrMap(IntT a);
ARGUMENTS
a - Attribute (See Appendix A) to translate
RETURNS
Monochrome Equavalent
EXAMPLE
FILE: MNU\ITMTXT.C.......Line: 28
FILE: MNU\MNUBEG.C.......Line: 56, 57
FILE: MNU\MNUEND.C.......Line: 47, 48, 49
FILE: ENT\ENTDEF.C.......Line: 34
FILE: HLP\HLPDEF.C.......Line: 59, 60, 61, 62
FILE: WIN\WCHGATR.C......Line: 30, 31
FILE: WIN\WOPEN.C........Line: 52, 53
FILE: WIN\WPRTC.C........Line: 32
FILE: WIN\WSETTXT.C......Line: 22
FILE: WIN\WSHADOW.C......Line: 38
FILE: WIN\WTITLE.C.......Line: 31
FILE: WIN\WWPRINTS.C.....Line: 59
FILE: DSP\VATRSET.C......Line: 24
FILE: DSP\VCLEAR.C.......Line: 27
FILE: DSP\VDRWBOX.C......Line: 28
FILE: DSP\VFILBOX.C......Line: 27
FILE: DSP\VPRINTC.C......Line: 24
FILE: DSP\VPRINTS.C......Line: 24
FILE: HDW\FMTFLIP.C......Line: 28, 32
TesSeRact CXL V5.5 Documentation Page 105
---------------------------------------------------------------------------
NAME.........VatrRev <TcxlVid.H>
DESCRIPTION
Reverses the attribute (See Appendix A) of the character under the
current cursor position, and continues for the specified number of
characters. Uses video BIOS calls.
PROTOTYPE....VOID CTYP VatrRev(IntT n);
ARGUMENTS
n - Count of Characters to Reverse
RETURNS......None
---------------------------------------------------------------------------
NAME.........VatrSet <TcxlVid.H>
DESCRIPTION
Sets the attribute (See Appendix A) of the character under the
current cursor location, and continues for the specified number of
characters. Uses video BIOS calls.
PROTOTYPE....VOID CTYP VatrSet(IntT a, IntT n);
ARGUMENTS
a - Attribute (See Appendix A) to set
n - Count of Characters to Set
RETURNS......None
---------------------------------------------------------------------------
NAME.........VatrTxt <TcxlVid.H>
DESCRIPTION
Converts an attribute (See Appendix A) to it's text-based
equivalent.
PROTOTYPE....ChrP CTYP VatrTxt(IntT a);
ARGUMENTS
a - Attribute (See Appendix A)
RETURNS
Static string with color text.
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1096
Page 106 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........Vattrib <TcxlVid.H> Macro
DESCRIPTION
Creates a text attribute (See Appendix A). It is usually much
easier to create a text attribute using the attribute identifiers
listed in Appendix A, but this provides an alternate method.
PROTOTYPE....IntT Vattrib(IntT f, IntT b, IntT i, IntT h);
#define Vattrib(f,b,i,h) ((b<<4)|(f)|(i<<3)|(h<<7))
ARGUMENTS
f - Foreground Color
b - Background Color
i - Intensity
h - Blink Bit
RETURNS
The new attribute code
---------------------------------------------------------------------------
Video-Disk Routines
---------------------------------------------------------------------------
NAME.........VsavBox <TcxlVid.H> Macro
.............VsavBx_
DESCRIPTION
Copies an area of the screen to a disk file.
PROTOTYPE....IntT VsavBox(VposT s, VposT e, ChrP f);
.............IntT CTYP VsavBx_(WrdT s, WrdT e, ChrP f);
#define VsavBox(s,e,f) (VsavBx_(VposW(s),VposW(e),(f)))
ARGUMENTS
s - Start Position
e - End Position
f - Filename to use
RETURNS
Nonzero on error
TesSeRact CXL V5.5 Documentation Page 107
---------------------------------------------------------------------------
NAME.........VlodBox <TcxlVid.H>
DESCRIPTION
Copies a previously saved window disk file to the screen.
PROTOTYPE....IntT CTYP VlodBox(ChrP f);
ARGUMENTS
f - Filename
RETURNS
Nonzero on error
---------------------------------------------------------------------------
NAME.........VsavScr <TcxlVid.H>
DESCRIPTION
Copies the current screen to a disk file.
PROTOTYPE....IntT CTYP VsavScr(ChrP f)
ARGUMENTS
f - Filename
RETURNS
Nonzero on error
---------------------------------------------------------------------------
NAME.........VlodScr <TcxlVid.H>
DESCRIPTION
Restores a previewsly saved screen from disk.
PROTOTYPE....IntT CTYP VlodScr(ChrP f);
ARGUMENTS
f - Filename
RETURNS
Nonzero on error
Page 108 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
Input System
Active Window Input
---------------------------------------------------------------------------
NAME.........KwGetCf <TcxlKey.H>
DESCRIPTION
Gets a character from the keyboard. Allows input only of
characters listed in the string of valid characters. Entered
characters will be echoed to the active window using the current
text attribute (See Appendix A). Cursor position is updated.
Escape checking is provided by default, but can be turned off with
the WsetEsc() function.
PROTOTYPE....IntT CTYP KwGetCf(ChrP v, IntT d);
ARGUMENTS
v - Valid Character String
d - Default Selection
RETURNS
The ASCII value of the key pressed, or a zero if an error occurred.
On error, TcxlErr Returns:
W_NOACTIVE - No Active Window
W_ESCPRESS - The [Esc] Key Was Pressed
SEE ALSO
KvGetCf (Page 115)
EXAMPLE
FILE: INP\KWGETYN.C......Line: 27
TesSeRact CXL V5.5 Documentation Page 109
---------------------------------------------------------------------------
NAME.........KwGetCh <TcxlKey.H>
DESCRIPTION
Gets a character from the keyboard. Entered character will be
echoed to the active window using the window's current text
attribute (See Appendix A). Cursor position is updated.
PROTOTYPE....IntT CTYP KwGetCh(NOARG);
ARGUMENTS....None
RETURNS
The ASCII value of the key pressed, or a zero if an error occurred.
On error, TcxlErr Returns:
W_NOACTIVE - No Active Window
SEE ALSO
KvGetCh (Page 115)
EXAMPLE
FILE: INP\KWGETST.C......Line: 28
Page 110 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........KwGetFmt <TcxlKey.H>
DESCRIPTION
Inputs a formatted string from the keyboard. Characters will be
echoed to the active window in the current text attribute (See
Appendix A). Cursor position is updated. Escape checking is
provided by default, but can be turned off with the WsetEsc()
function.
This function provides an extremely powerful method of accept
single-line input from the user. You can limit input characters to
certain characters of a type, such as numbers, insert strings in
between typed in characters, create custom prompts, disable [Enter]
until the field is filled, and more.
PROTOTYPE....IntT CTYP KwGetFmt(ChrP s, ChrP f);
ARGUMENTS
s - Buffer To Receive Input String
f - Format String (See Appendix E)
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_ESCPRESS - The [Esc] Key Was Pressed
W_INVFORMT - Invalid Format String
SEE ALSO
KvGetFmt (Page 116)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1166, 1171, 1176
TesSeRact CXL V5.5 Documentation Page 111
---------------------------------------------------------------------------
NAME.........KwGetSn <TcxlKey.H>
DESCRIPTION
Gets a string from the keyboard, limiting the number of characters
input to the specified length. Characters will be echoed to the
active window in the current text attribute (See Appendix A).
Cursor position is updated. Escape checking is provided by
default, but can be turned off with the WsetEsc() function.
PROTOTYPE....IntT CTYP KwGetSn(ChrP s, IntT m);
ARGUMENTS
s - Buffer To Receive Input String
m - Maximum Length of Input String
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_ESCPRESS - The [Esc] Key Was Pressed
SEE ALSO
KvGetSn (Page 116)
---------------------------------------------------------------------------
NAME.........KwGetSt <TcxlKey.H>
DESCRIPTION
Gets a string from the keyboard. Characters will be echoed to the
active window in the current text attribute (See Appendix A).
Cursor position is updated. Escape checking is provided by
default, but can be turned off with the WsetEsc() function.
PROTOTYPE....IntT CTYP KwGetSt(ChrP ps);
ARGUMENTS
ps - Buffer To Receive Input String
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_ESCPRESS - The [Esc] Key Was Pressed
SEE ALSO
KvGetSt (Page 117)
EXAMPLE
FILE: INP\KWSCANF.C......Line: 38
Page 112 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........KwGetYn <TcxlKey.H>
DESCRIPTION
Gets a [Y]es or [N]o response from the keyboard. After the user
presses [Enter], "Y", "N", "y", or "n", the text "Yes" or "No" will
be displayed in the active window in the current text attribute
(See Appendix A). Cursor position is updated. Escape checking is
provided by default, but can be turned off with the WsetEsc()
function.
PROTOTYPE....IntT CTYP KwGetYn(IntT cd);
ARGUMENTS
cd - The Default Value (0=No, 1=Yes)
RETURNS
'Y' if Yes was selected, an 'N' if No was selected, or a '\0' if the
user pressed [Esc] and Escape checking was on.
SEE ALSO
KvGetYn (Page 117)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1038, 1048, 1383, 1486
TesSeRact CXL V5.5 Documentation Page 113
---------------------------------------------------------------------------
NAME.........KwScanf <TcxlKey.H>
DESCRIPTION
!!!!NOTE!!!! This function is only available with the Turbo C
versions of TCXL. Neither Microsoft C nor Zortech C/C++ provide
the necessary vsscanf() function needed to implement this
procedure.
Inputs a formatted string from the keyboard. Characters will be
echoed to the active window in the current text attribute (See
Appendix A). Cursor position is updated. Escape checking is
provided by default, but can be turned off with the WsetEsc()
function.
This function works identical to the C library routine scanf(),
except that input is done to the default window.
PROTOTYPE....IntT CDC KwScanf(ChrP fs, ...);
ARGUMENTS
fs - Format String (see your compiler's documentation)
... - Additional Arguments
RETURNS
ERR_NUL - No Error
ERR_ARG - Argument Failure
TcxlErr Returns:
W_NOACTIVE - No Active Window
W_ESCPRESS - The [Esc] Key Was Pressed
SEE ALSO
KvScanf (Page 118)
Page 114 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
Default Video Input
---------------------------------------------------------------------------
NAME.........KvGetCf <TcxlKey.H>
DESCRIPTION
Gets a character from the keyboard. Allows input only of
characters listed in the string of valid characters. Entered
characters will be echoed to the Standard Output device. Escape
checking is always on.
PROTOTYPE....IntT CTYP KvGetCf(ChrP v, IntT d);
ARGUMENTS
v - Valid Character String
d - Default Selection
RETURNS
The ASCII value of the key pressed, or a zero if [Esc] is pressed.
SEE ALSO
KwGetCf (Page 109)
EXAMPLE
FILE: INP\KVGETYN.C......Line: 23
---------------------------------------------------------------------------
NAME.........KvGetCh <TcxlKey.H>
DESCRIPTION
Gets a character from the keyboard. Entered characters will be
echoed to Standard Output Device.
PROTOTYPE....IntT CTYP KvGetCh(NOARG);
ARGUMENTS....None
RETURNS
The ASCII value of the key pressed.
SEE ALSO
KwGetCh (Page 110)
EXAMPLE
FILE: INP\KVGETST.C......Line: 26
TesSeRact CXL V5.5 Documentation Page 115
---------------------------------------------------------------------------
NAME.........KvGetFmt <TcxlKey.H>
DESCRIPTION
Inputs a formatted string from the keyboard. Characters will be
echoed to the Standard Output Device.
This function provides an extremely powerful method of accept
single-line input from the user. You can limit input characters to
certain characters of a type, such as numbers, insert strings in
between typed in characters, create custom prompts, disable [Enter]
until the field is filled, and more.
PROTOTYPE....IntT CTYP KvGetFmt(ChrP s, ChrP f);
ARGUMENTS
s - Buffer To Receive Input String
f - Format String (See Appendix E)
RETURNS
Zero on Success, -1 on invalid format, or 1 if [Esc] was pressed.
SEE ALSO
KwGetFmt (Page 111)
---------------------------------------------------------------------------
NAME.........KvGetSn <TcxlKey.H>
DESCRIPTION
Gets a string from the keyboard, limiting the number of characters
input to the specified length. Characters will be echoed to the
Standard Output Device.
PROTOTYPE....IntT CTYP KvGetSn(ChrP s, IntT m);
ARGUMENTS
s - Buffer To Receive Input String
m - Maximum Length of Input String
RETURNS
Zero for success, 1 if ESC is pressed.
SEE ALSO
KwGetSn (Page 112)
Page 116 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........KvGetSt <TcxlKey.H>
DESCRIPTION
Gets a string from the keyboard. Characters will be echoed to the
Standard Output Device.
PROTOTYPE....VOID CTYP KvGetSt(ChrP ps);
ARGUMENTS
ps - Buffer To Receive Input String
RETURNS......None
SEE ALSO
KwGetSt (Page 112)
EXAMPLE
FILE: INP\KVSCANF.C......Line: 34
---------------------------------------------------------------------------
NAME.........KvGetYn <TcxlKey.H>
DESCRIPTION
Gets a [Y]es or [N]o response from the keyboard. After the user
presses [Enter], "Y", "N", "y", or "n", the text "Yes" or "No" will
be displayed to the Standard Output Device.
PROTOTYPE....IntT CTYP KvGetYn(IntT cd);
ARGUMENTS
cd - The Default Value (0=No, 1=Yes)
RETURNS
'Y' if Yes was selected, an 'N' if No was selected.
SEE ALSO
KwGetYn (Page 113)
TesSeRact CXL V5.5 Documentation Page 117
---------------------------------------------------------------------------
NAME.........KvScanf <TcxlKey.H>
DESCRIPTION
!!!!NOTE!!!! This function is only available with the Turbo C
versions of TCXL. Neither Microsoft C nor Zortech C/C++ provide
the necessary vsscanf() function needed to implement this
procedure.
Inputs a formatted string from the keyboard. Characters will be
echoed to Standard Output Device.
This function works identical to the C library routine scanf().
PROTOTYPE....VOID CDC KvScanf(ChrP fs, ...);
ARGUMENTS
fs - Format String (see your compiler's documentation)
... - Additional Arguments
RETURNS......None
SEE ALSO
KwScanf (Page 114)
---------------------------------------------------------------------------
Asynchronous Input
---------------------------------------------------------------------------
NAME.........KbndChg <TcxlKey.H>
DESCRIPTION
The KbndSet() (Page 120) function builds a stacked list in memory
that contains each defined keycode binding. This function allows
you to maintain multiple key binding lists and change back and
forth between them. KbndChg() provides painless switching between
various Key Binding lists.
PROTOTYPE....KbndP CTYP KbndChg(KbndP l);
ARGUMENTS
l - New Key Binding
RETURNS
Old Key Binding
EXAMPLE
FILE: HLP\HLPSHOW.C......Line: 81, 144
FILE: TCXLDEMO.C.........Line: 1375, 1387
Page 118 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........KbndClr <TcxlKey.H>
DESCRIPTION
Removes bindings for the passed keycode.
PROTOTYPE....IntT CTYP KbndClr(KeyT k);
ARGUMENTS
k - Keycode to unbind.
RETURNS
0 on success, 1 if not found.
EXAMPLE
FILE: HLP\HLPSHOW.C......Line: 192, 194, 195, 313, 333, 342
FILE: INP\KBNDSET.C......Line: 26
---------------------------------------------------------------------------
NAME.........KbndFre <TcxlKey.H>
DESCRIPTION
Free all key bindings from memory.
PROTOTYPE....VOID CTYP KbndFre(NOARG);
ARGUMENTS....None
RETURNS......None
EXAMPLE
FILE: HLP\HLPSHOW.C......Line: 143
---------------------------------------------------------------------------
NAME.........KbndIdle <TcxlKey.H> Macro
DESCRIPTION
This binds the passed function to the keyboard idle loop. During
KeyGetc() processing, if no input is available, this routine is
called. !!! WARNING !!! Do not attempt to update the display or
windows every time this routine is called. Doing so will cause a
mouse cursor to "flicker". Only update the display when needed.
PROTOTYPE....VOID KbndIdle(VfvCP a);
#define KbndIdle(a) (KctlIdl = a)
ARGUMENTS
a - Idle Function
RETURNS......None
EXAMPLE
FILE: TCXLDEMO.C.........Line: 889, 983
TesSeRact CXL V5.5 Documentation Page 119
---------------------------------------------------------------------------
NAME.........KbndSet <TcxlKey.H>
DESCRIPTION
Binds a keypress to a function call. Works by intercepting any
calls to TCXL input functions. During Input processing, the input
function will determine if a key-binding exists; if so, the bound
routine will be executed, and the appropriate key will be returned
to the calling function. If no binding exists, the Input System
will continue processing as normal.
PROTOTYPE....IntT CTYP KbndSet(KeyT k, VfvCP f, KeyT r);
ARGUMENTS
k - Keycode to Bind.
f - Function to Call When Key is Pressed.
r - Keycode to Return to Caller After 'f' is Completed. If zero,
then nothing will be returned, and execution will resume as if no
key had been pressed.
RETURNS
0 on success, 1 on allocation failure.
EXAMPLE
FILE: HLP\HLPSHOW.C......Line: 184, 186, 187
FILE: TCXLDEMO.C.........Line: 748, 2311
---------------------------------------------------------------------------
Input With No Echo
---------------------------------------------------------------------------
NAME.........KeyClear <TcxlKey.H> Macro
DESCRIPTION
Clears the keyboard buffer.
PROTOTYPE....VOID KeyClear(NOARG);
#define KeyClear() while(_KeyHit()) _KeyGet()
ARGUMENTS....None
RETURNS......None
EXAMPLE
FILE: INP\KEYTIME.C......Line: 27
FILE: TCXLDEMO.C.........Line: 1037, 1047, 1144, 1182, 1231, 1381,
1485
Page 120 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........KeyEvent <TcxlKey.H>
DESCRIPTION
Determines if a key or mouse button has been pressed. If no events
are pending, calls the Idle function (if defined) as set by
KbndIdle() (Page 119)
PROTOTYPE....IntT CTYP KeyEvent(NOARG);
ARGUMENTS....None
RETURNS
TRUE if event pending, FALSE otherwise.
EXAMPLE
FILE: INP\KEYTIME.C......Line: 30
---------------------------------------------------------------------------
NAME.........KeyGetc <TcxlKey.H>
DESCRIPTION
Gets a keycode (ASCII/ScanCode) from the keyboard, mouse, and
internal queue.
PROTOTYPE....KeyT CTYP KeyGetc(NOARG);
ARGUMENTS....None
RETURNS
Keycode of the event.
EXAMPLE
FILE: MNU\MNUSHOW.C......Line: 121
FILE: ENT\ENTSHOW.C......Line: 118
FILE: HLP\HLPSHOW.C......Line: 228
FILE: SEL\SELATTR.C......Line: 53
FILE: SEL\_SELECT.C......Line: 133
FILE: INP\KEYTIME.C......Line: 35
FILE: INP\KVGETCF.C......Line: 26
FILE: INP\KVGETCH.C......Line: 23
FILE: INP\KVGETFMT.C.....Line: 54
FILE: INP\KVGETSN.C......Line: 27
FILE: INP\KWGETCF.C......Line: 32
FILE: INP\KWGETCH.C......Line: 28
FILE: INP\KWGETFMT.C.....Line: 60
FILE: INP\KWGETSN.C......Line: 30
FILE: TCXLDEMO.C.........Line: 1733
TesSeRact CXL V5.5 Documentation Page 121
---------------------------------------------------------------------------
NAME.........KeyPeek <TcxlKey.H> Macro
DESCRIPTION
Looks at the next keystroke in the BIOS keyboard buffer, and
returns its ASCII/ScanCode value.
PROTOTYPE....KeyT KeyPeek(NOARG);
#define KeyPeek() (_KeyHit())
ARGUMENTS....None
RETURNS
KeyCode of the next key in buffer, or zero if nothing available.
---------------------------------------------------------------------------
NAME.........KeyStat <TcxlKey.H> Macro
DESCRIPTION
Returns the status of the keyboard control keys.
PROTOTYPE....WrdT KeyStat(NOARG);
#define KeyStat() (_KeySta())
ARGUMENTS....None
RETURNS
Status Word of the Keyboard Flag
---------------------------------------------------------------------------
NAME.........KeyTime <TcxlKey.H>
DESCRIPTION
Flushes the input buffers, and waits for a keyboard/mouse event.
This function will time out and return after the passed number of
timer ticks.
PROTOTYPE....KeyT CTYP KeyTime(IntT t);
ARGUMENTS
t - Timer Ticks to Wait Before Timing Out, or -1 to never time out.
RETURNS
KeyCode of the event, or -1 if timed out.
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1137, 1249, 1613, 1624, 2351
Page 122 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........KeyWait <TcxlKey.H> Macro
DESCRIPTION
Flushes the input buffers, and waits for a keyboard/mouse event.
PROTOTYPE....KeyT KeyWait(NOARG);
#define KeyWait() (KeyTime(-1))
ARGUMENTS....None
RETURNS
KeyCode of the event.
EXAMPLE
FILE: HLP\HLPSHOW.C......Line: 116, 324
FILE: WIN\WPERROR.C......Line: 50
FILE: TCXLDEMO.C.........Line: 1131, 2227, 2348
---------------------------------------------------------------------------
Strings System
Trimming
---------------------------------------------------------------------------
NAME..........strbtrim <TcxlStr.H> Macro
DESCRIPTION
Trims both leading and trailing spaces off of a string.
PROTOTYPE....ChrP strbtrim(ChrP s);
#define strbtrim(s) strtrim(strltrim(s))
ARGUMENTS
s - String to Modify
RETURNS
The address of the input string.
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1816
TesSeRact CXL V5.5 Documentation Page 123
---------------------------------------------------------------------------
NAME.........strltrim <TcxlStr.H>
DESCRIPTION
Trims the leading spaces off of a string.
PROTOTYPE....ChrP CTYP strltrim(ChrP s);
ARGUMENTS
s - String to Modify
RETURNS
Address of the modified string.
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1483, 1808
---------------------------------------------------------------------------
NAME.........strrtrim <TcxlStr.H> Macro
DESCRIPTION
Trims trailing spaces off of a string.
PROTOTYPE....ChrP strrtrim(ChrP s);
#define strrtrim(s) strtrim(s)
ARGUMENTS
s - String to Modify
RETURNS
Address of the modified string
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1812
---------------------------------------------------------------------------
NAME.........strtrim <TcxlStr.H>
DESCRIPTION
Trims trailing spaces off of a string.
PROTOTYPE....ChrP CTYP strtrim(ChrP s);
ARGUMENTS
s - String to Modify
RETURNS
Address of the modified string
EXAMPLE
FILE: ENT\ENTSHOW.C......Line: 166
FILE: TCXLDEMO.C.........Line: 1474, 1475, 1476, 1477, 1478, 1479,
1480, 1481, 1482, 1812
Page 124 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
Changing
---------------------------------------------------------------------------
NAME.........strchg <TcxlStr.H>
DESCRIPTION
Finds all letters in a string matching one character and replaces
them with another.
PROTOTYPE....IntT CTYP strchg(ChrP s, IntT a, IntT b);
ARGUMENTS
s - String to Search
a - Character to Search For
b - Character to Replace With
RETURNS
The number of matches found
EXAMPLE
FILE: HLP\HLPSHOW.C......Line: 90, 91, 92
FILE: TCXLDEMO.C.........Line: 1832
---------------------------------------------------------------------------
NAME.........strichg <TcxlStr.H>
DESCRIPTION
Finds all letters in a string matching one character and replaces
them with another. Ignores case of letters.
PROTOTYPE....IntT CTYP strichg(ChrP s, IntT a, IntT b);
ARGUMENTS
s - String to Search
a - Character to Search For
b - Character to Replace With
RETURNS
The number of matches found
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1836
TesSeRact CXL V5.5 Documentation Page 125
---------------------------------------------------------------------------
NAME.........strischg <TcxlStr.H>
DESCRIPTION
Changes all occurrences of one string to another. Ignores case of
letters.
PROTOTYPE....ChrP CTYP strischg(ChrP s, ChrP a, ChrP b);
ARGUMENTS
s - String to Search
a - String to Search For
b - String To Replace Found Strings With
RETURNS
The address of the modified string, or NULL if no matches were found.
EXAMPLE
FILE: STR\STRISCHG.C.....Line: 21
FILE: TCXLDEMO.C.........Line: 1840
---------------------------------------------------------------------------
NAME.........strschg <TcxlStr.H>
DESCRIPTION
Changes all occurrences of one string to another.
PROTOTYPE....ChrP CTYP strschg(ChrP s, ChrP a, ChrP b);
ARGUMENTS
s - String to search
a - String to search for
r - String to replace
RETURNS
The address of the modified string, or NULL if no matches were found.
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1844
Page 126 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
Checksum
---------------------------------------------------------------------------
NAME.........strchksum <TcxlStr.H>
DESCRIPTION
Returns the checksum of a string. The checksum is calculated by
adding up the ASCII values of each character in the string.
PROTOTYPE....DwdT CTYP strchksum(ChrP s);
ARGUMENTS
s - String to Checksum
RETURNS
The checksum of the input string
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1856
---------------------------------------------------------------------------
NAME.........strichksum <TcxlStr.H>
DESCRIPTION
Returns the checksum of a string. The checksum is calculated by
adding up the ASCII values of each character in the string. All
lowercase letters will be counted as uppercase.
PROTOTYPE....DwdT CTYP strichksum(ChrP s);
ARGUMENTS
s - String to Checksum
RETURNS
The checksum of the input string.
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1856
TesSeRact CXL V5.5 Documentation Page 127
---------------------------------------------------------------------------
Delete/Insert
---------------------------------------------------------------------------
NAME.........strdel <TcxlStr.H>
DESCRIPTION
Deletes a substring from within a string.
PROTOTYPE....ChrP CTYP strdel(ChrP a, ChrP s);
ARGUMENTS
a - Substring to Delete
s - String to Delete From
RETURNS
Address of the modified string, or NULL if substring not found.
EXAMPLE
FILE: STR\STRDELA.C......Line: 26
FILE: STR\STRSREP.C......Line: 25
FILE: TCXLDEMO.C.........Line: 1868
---------------------------------------------------------------------------
NAME.........strdela <TcxlStr.H>
DESCRIPTION
Deletes all occurrences of a substring from within a string.
PROTOTYPE....ChrP CTYP strdela(ChrP a, ChrP s);
ARGUMENTS
a - Substring to Delete
s - String to Delete From
RETURNS
Address of the modified string, or NULL if substring not found.
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1872
Page 128 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........stridel <TcxlStr.H>
DESCRIPTION
Deletes a substring from within a string. Ignores case of letters.
PROTOTYPE....ChrP CTYP stridel(ChrP a, ChrP b);
ARGUMENTS
a - Substring to Delete
s - String to Delete From
RETURNS
Address of the modified string, or NULL if substring not found.
EXAMPLE
FILE: STR\STRIDELA.C.....Line: 26
FILE: STR\STRISREP.C.....Line: 26
FILE: TCXLDEMO.C.........Line: 1876
---------------------------------------------------------------------------
NAME.........stridela <TcxlStr.H>
DESCRIPTION
Deletes all occurrences of a substring from within a string.
Ignores case of letters.
PROTOTYPE....ChrP CTYP stridela(ChrP a, ChrP b);
ARGUMENTS
a - Substring to Delete
s - String to Delete From
RETURNS
Address of the modified string, or NULL if substring not found.
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1880
TesSeRact CXL V5.5 Documentation Page 129
---------------------------------------------------------------------------
NAME.........strins <TcxlStr.H>
DESCRIPTION
Inserts one string into another. Make sure the receiving buffer is
large enough to hold the combined new string!
PROTOTYPE....ChrP CTYP strins(ChrP a, ChrP s, IntT p);
ARGUMENTS
a - String to Insert
s - String to Receive Insertion
p - Starting position
RETURNS
The address of the modified string.
EXAMPLE
FILE: STR\STRISREP.C.....Line: 28
FILE: STR\STRSREP.C......Line: 27
FILE: TCXLDEMO.C.........Line: 1884
---------------------------------------------------------------------------
Inclusion
---------------------------------------------------------------------------
NAME.........strinc <TcxlStr.H>
DESCRIPTION
Determines if and where one string is included within another.
PROTOTYPE....ChrP CTYP strinc(ChrP a, ChrP s);
ARGUMENTS
a - String to search for
s - String to search
RETURNS
A pointer to the location in 's' that contains 'a', or NULL if not
found.
EXAMPLE
FILE: STR\STRDEL.C.......Line: 24
FILE: STR\STRDELA.C......Line: 25
FILE: STR\STRSOCC.C......Line: 27, 31
FILE: STR\STRSREP.C......Line: 24
FILE: TCXLDEMO.C.........Line: 1897
Page 130 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........striinc <TcxlStr.H>
DESCRIPTION
Determines if and where one string is included within another.
Ignores case of letters.
PROTOTYPE....ChrP CTYP striinc(ChrP a, ChrP s);
ARGUMENTS
a - String to search for
s - String to search
RETURNS
A pointer to the location in 's' that contains 'a', or NULL if not
found.
EXAMPLE
FILE: STR\STRIDEL.C......Line: 24
FILE: STR\STRIDELA.C.....Line: 25
FILE: STR\STRISOCC.C.....Line: 28, 32
FILE: STR\STRISREP.C.....Line: 25
FILE: TCXLDEMO.C.........Line: 1900
---------------------------------------------------------------------------
NAME.........strocc <TcxlStr.H>
DESCRIPTION
Counts occurrences of a character in a string.
PROTOTYPE....IntT CTYP strocc(ChrP s, IntT c);
ARGUMENTS
s - String to Search
c - Character to search for
RETURNS
The number of occurrences of the character in the string.
EXAMPLE
FILE: ENT\ENTSHOW.C......Line: 427, 432, 443, 448, 481, 483, 637,
639, 665, 667
FILE: TCXLDEMO.C.........Line: 1903
TesSeRact CXL V5.5 Documentation Page 131
---------------------------------------------------------------------------
NAME.........striocc <TcxlStr.H>
DESCRIPTION
Returns the number of occurrences of a character in a string.
Ignores case of letters.
PROTOTYPE....IntT CTYP striocc(ChrP s, IntT c);
ARGUMENTS
s - String to Search
c - Character to search for
RETURNS
The number of occurrences of the character in the string.
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1906
---------------------------------------------------------------------------
NAME.........strsocc <TcxlStr.H>
DESCRIPTION
Counts the occurrences of one string within another.
PROTOTYPE....IntT CTYP strsocc(ChrP a, ChrP s);
ARGUMENTS
a - String to Search For
s - String to Search
RETURNS
The number of times that string 'a' occurs in string 's'.
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1909
Page 132 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........strisocc <TcxlStr.H>
DESCRIPTION
Counts occurrences of one string within another. Ignores case of
letters.
PROTOTYPE....IntT CTYP strisocc(ChrP a, ChrP s);
ARGUMENTS
a - String to search for
s - String to search
RETURNS
The number of times that string 'a' occurs in string 's'.
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1911
---------------------------------------------------------------------------
Replacement
---------------------------------------------------------------------------
NAME.........strsrep <TcxlStr.H>
DESCRIPTION
Searches for, and replaces one string within another.
PROTOTYPE....ChrP CTYP strsrep(ChrP s, ChrP a, ChrP b);
ARGUMENTS
s - String to Search
a - String to Search For
b - String to Replace With
RETURNS
The address of the modified string, or NULL if the search string
wasn't found.
EXAMPLE
FILE: STR\STRSCHG.C......Line: 29
FILE: TCXLDEMO.C.........Line: 1923
TesSeRact CXL V5.5 Documentation Page 133
---------------------------------------------------------------------------
NAME.........strisrep <TcxlStr.H>
DESCRIPTION
Searches for, *and replaces one string within another. Ignores case
of letters.
PROTOTYPE....ChrP CTYP strisrep(ChrP s, ChrP a, ChrP b);
ARGUMENTS
s - String to search
a - String to search for
r - String to replace
RETURNS
The address of the modified string, or NULL if the search string
wasn't found.
EXAMPLE
FILE: STR\STRISCHG.C.....Line: 29
FILE: TCXLDEMO.C.........Line: 1927
---------------------------------------------------------------------------
Substrings
---------------------------------------------------------------------------
NAME.........strmid <TcxlStr.H>
DESCRIPTION
Takes a section from input string starting at given position and
taking the given amount of characters creating a new string.
PROTOTYPE....ChrP CTYP strmid(ChrP s, IntT p, IntT n);
ARGUMENTS
s - Input String
p - Position to start copying
n - Number of characters to copy
RETURNS
Address of the newly created string or a NULL if a memory allocation
error occurred. Be sure to free() the string when or if you are
finished with it.
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1940
Page 134 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........strleft <TcxlStr.H> Macro
DESCRIPTION
Takes a specified portion of a string from its left and creates a
new string.
PROTOTYPE....ChrP strleft(ChrP s, IntT n);
#define strleft(s,n) strmid(s,0,n)
ARGUMENTS
s - Input String
n - Number of Character to Copy
RETURNS
Address of the newly created string or a NULL if a memory allocation
error occurred. Be sure to free() this string if or when you don't
need it anymore.
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1943
---------------------------------------------------------------------------
NAME.........strright <TcxlStr.H> Macro
DESCRIPTION
Takes a specifed portion from the right side of a string creating a
new string.
PROTOTYPE....ChrP strright(ChrP s, IntT n);
#define strright(s,n) strmid(s,strlen(s)-n,n)
ARGUMENTS
s - Input String
n - Number of Characters to Copy
RETURNS
Address of the newly created string or a NULL if a memory allocation
error occurred. Be sure to free() the string when or if you are
finished with it.
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1946
TesSeRact CXL V5.5 Documentation Page 135
---------------------------------------------------------------------------
Justification
---------------------------------------------------------------------------
NAME.........strljust <TcxlStr.H>
DESCRIPTION
Left justifies a text string.
PROTOTYPE....ChrP CTYP strljust(ChrP s);
ARGUMENTS
s - String to Justify
RETURNS
Address of the modified string.
EXAMPLE
FILE: ENT\ENTSHOW.C......Line: 299
FILE: TCXLDEMO.C.........Line: 1960
---------------------------------------------------------------------------
NAME.........strrjust <TcxlStr.H>
DESCRIPTION
Right justifies a text string.
PROTOTYPE....ChrP CTYP strrjust(ChrP s);
ARGUMENTS
s - String to Justify
RETURNS
Address of modified string.
EXAMPLE
FILE: ENT\ENTSHOW.C......Line: 301
FILE: HDW\CVTIC.C........Line: 32
FILE: TCXLDEMO.C.........Line: 1964
Page 136 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........strrol <TcxlStr.H>
DESCRIPTION
Rotates a string specified number of characters left. The rotated
characters wrap around to the right side of the string.
PROTOTYPE....ChrP CTYP strrol(ChrP s, IntT n);
ARGUMENTS
s - String to Rotate
n - Count to Rotate
RETURNS
Address of the modified string
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1968
---------------------------------------------------------------------------
NAME.........strror <TcxlStr.H>
DESCRIPTION
Rotates a string specified number of characters right. The rotated
characters wrap around to the left side of the string.
PROTOTYPE....ChrP CTYP strror(ChrP s, IntT n);
ARGUMENTS
s - String to Rotate
n - Count to Rotate
RETURNS
Address of the modified string
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1972
TesSeRact CXL V5.5 Documentation Page 137
---------------------------------------------------------------------------
NAME.........strshl <TcxlStr.H>
DESCRIPTION
Shifts a string a specified number of characters left. Characters
that shift past the beginning of the string "drop off" and spaces
are added to the right of the string.
PROTOTYPE....ChrP CTYP strshl(ChrP s, IntT n);
ARGUMENTS
s - String to Shift
n - Character Count to Shift
RETURNS
Address of the Modified String
EXAMPLE
FILE: ENT\ENTSHOW.C......Line: 400, 453
FILE: TCXLDEMO.C.........Line: 1976
---------------------------------------------------------------------------
NAME.........strshr <TcxlStr.H>
DESCRIPTION
Shifts a string a specified number of characters right. Characters
that shift past the end of the string "drop off" and spaces are
added to the left of the string.
PROTOTYPE....ChrP CTYP strshr(ChrP s, IntT n);
ARGUMENTS
s - String to Shift
n - Character Count to Shift
RETURNS
Address of the Modified String
EXAMPLE
FILE: ENT\ENTSHOW.C......Line: 500
FILE: TCXLDEMO.C.........Line: 1980
Page 138 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
Matching
---------------------------------------------------------------------------
NAME.........strbmatch <TcxlStr.H>
DESCRIPTION
Returns the best match of a string in an array of strings.
PROTOTYPE....ChrP CTYP strbmatch(ChrP s, ChrP a[]);
ARGUMENTS
s - String to Match
a - Array of pointers. The last pointer in the array must be NULL.
RETURNS
Address of the string in the array that best matched the given string.
EXAMPLE
FILE: TCXLDEMO.C.........Line: 345
FILE: TCXLDEMO.C.........Line: 1796
---------------------------------------------------------------------------
NAME.........strmatch <TcxlStr.H>
DESCRIPTION
Compares 2 strings and returns a match score.
PROTOTYPE....IntT CTYP strmatch(ChrP a, ChrP b);
ARGUMENTS
a - First String
b - Second String
RETURNS
A match score. The higher the score, the better they match. The
maximum possible score is strlen(a) + strlen(b).
EXAMPLE
FILE: STR\STRBMATC.C.....Line: 26
FILE: STR\STRBMATC.C.....Line: 28
FILE: TCXLDEMO.C.........Line: 1792
TesSeRact CXL V5.5 Documentation Page 139
---------------------------------------------------------------------------
Miscellaneous
---------------------------------------------------------------------------
NAME.........strblank <TcxlStr.H>
DESCRIPTION
Determines if a given string is blank (whitespace).
PROTOTYPE....IntT CTYP strblank(ChrP s);
ARGUMENTS
s - String to Check
RETURNS
TRUE if string is blank, FALSE otherwise
EXAMPLE
FILE: ENT\ENTSHOW.C......Line: 387, 516, 530, 798
FILE: TCXLDEMO.C.........Line: 1348, 1647, 1995, 1996
---------------------------------------------------------------------------
NAME.........strcode <TcxlStr.H>
DESCRIPTION
Encodes/decodes a string. Call this function to encode a string,
then call again using the same key to decode it. When reading or
writing from a disk file, be sure to open the file in binary mode.
PROTOTYPE....ChrP CTYP strcode(ChrP s, ChrP k);
ARGUMENTS
s - String to encode
k - Key String
RETURNS
The address of the input string
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1999, 2001
Page 140 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........strsetsz <TcxlStr.H>
DESCRIPTION
Adjusts the length of a string, either by truncation or padding
with spaces. Make sure the string is large enough to hold the
entire buffer if it is expanded!
PROTOTYPE....ChrP CTYP strsetsz(ChrP s, IntT n);
ARGUMENTS
s - Input String
n - New Length
RETURNS
Address of the modified string.
SEE ALSO
strtrim (Page 124)
EXAMPLE
FILE: MNU\ITMSET.C.......Line: 31
FILE: ENT\ENTFLD.C.......Line: 85
FILE: TCXLDEMO.C.........Line: 2006, 2008
---------------------------------------------------------------------------
NAME.........struplow <TcxlStr.H>
DESCRIPTION
Converts a string to mixed upper & lowercase characters. Characters
are forced to upper or lowercase depending upon the previous
character in the string.
PROTOTYPE....ChrP CTYP struplow(ChrP s);
ARGUMENTS
s - String to Convert
RETURNS
Address of the modified string
SEE ALSO
touplow (Page 191)
EXAMPLE
FILE: TCXLDEMO.C.........Line: 1474, 1475, 1476, 1477, 1478, 1479,
1480, 1481, 1482, 1812
TesSeRact CXL V5.5 Documentation Page 141
---------------------------------------------------------------------------
Hardware Level Functions
Information Subsystem
Library Information
---------------------------------------------------------------------------
NAME.........TcxlInit <TcxlDef.H>
DESCRIPTION
This is the initialization function for the TCXL library. Within
this function, the low-level video, keyboard and mouse routines are
initialized. In future versions, all add-in modules will also be
initialized here, as well as user-defined functions. This function
also sets the TcxlTerm() function as a termination function, using
the compiler's atexit() procedure.
PROTOTYPE....VOID CTYP TcxlInit(NOARG);
ARGUMENTS....None
RETURNS......None
SEE ALSO
TcxlTerm (Page 142)
---------------------------------------------------------------------------
NAME.........TcxlTerm <TcxlDef.H>
DESCRIPTION
TcxlTerm() is currently a NULL function; in addition, a user should
NEVER CALL IT UNDER ANY CIRCUMSTANCES. This function is
automatically installed as an atexit() routine, and is provided
with this release to maintain upward compatibility.
PROTOTYPE....VOID CDC TcxlTerm(NOARG);
ARGUMENTS....None
RETURNS......None
SEE ALSO
TcxlInit (Page 142)
Page 142 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........TcxlVer <TcxlDef.H>
DESCRIPTION
This function returns a unsigned integer that describes the version
number of the TCXL library.
PROTOTYPE....WrdT TcxlVer(NOARG);
ARGUMENTS....None
RETURNS
An unsigned integer, with the high byte equal to the major version of
TCXL, and the low byte equal to the minor version.
EXAMPLE
printf("This is Version %d.%d of TCXL\n",
TcxlVer() >> 8, TcxlVer & 0x00ff);
---------------------------------------------------------------------------
Hardware Information
Please note that the functions gameport(), mathchip(), numflop(), numpar()
and numser() are no longer used in TCXL. They have been replaced by macros
accessing the _HdwCtl structure (See User's Guide). The old names have been
aliased to the new macros; however, we recommend you change your source to
conform with the new naming conventions.
---------------------------------------------------------------------------
NAME........._BioEqp <TcxlHdw.h>
DESCRIPTION
Initializes the global _HdwCtl object with BIOS equipment flag
data. Automatically called during TcxlInit() (Page 142).
PROTOTYPE....VOID PAS _BioEqp(NOARG);
ARGUMENTS....None
RETURNS......None
SEE ALSO
The various Hdw...() macros
TesSeRact CXL V5.5 Documentation Page 143
---------------------------------------------------------------------------
NAME.........BiosVer <TcxlHdw.h>
DESCRIPTION
Returns the ROM BIOS version date. May not work on some compatible
machines.
PROTOTYPE....ChrP CTYP BiosVer(NOARG);
ARGUMENTS....None
RETURNS
The address of the static string containing the ROM BIOS version date.
SEE ALSO
machid (Page 145)
---------------------------------------------------------------------------
NAME.........ClockCal <TcxlHdw.h>
DESCRIPTION
Determines if a clock-calendar board is installed. This usually
will only work with the clock-calendar boards in XT-style machines.
PROTOTYPE....IntT CTYP ClockCal(NOARG);
ARGUMENTS....None
RETURNS
Nonzero if a clock-calendar board is present.
Page 144 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........MachId <TcxlHdw.h>
DESCRIPTION
Returns the value of the machine ROM ID byte.
PROTOTYPE....IntT CTYP MachId(NOARG)
ARGUMENTS....None
RETURNS
The value of the machine ROM ID byte. Will usually be one of
thefollowing values. Any other value is unknown.
IBMPC - IBM PC
IBMPCXT - IBM PC/XT
IBMPCJR - IBM PCjr
IBMPCAT - IBM PC/AT
IBMPCXT2 - IBM PC/XT-2
IBMPS30 - IBM PS/2 Model 30
IBMCONV - IBM PC Convertible
IBMPS80 - IBM PS/2 Model 80
SPERRYPC - Sperry PC
CPQPORT - Compaq Portable
CPQPLUS - Compaq Portable Plus
HP110 - HP 110 Portable
SEE ALSO
biosver (Page 144)
---------------------------------------------------------------------------
NAME.........HdwFlg <TcxlHdw.h> Macro
DESCRIPTION
Returns the full flag word of the BIOS hardware settings.
PROTOTYPE....IntT HdwFlg(NOARG)
ARGUMENTS....None
RETURNS
The Full Flag Word Of The BIOS Hardware Settings
TesSeRact CXL V5.5 Documentation Page 145
---------------------------------------------------------------------------
NAME.........HdwGam <TcxlHdw.h> Macro
.............gameport
DESCRIPTION
Determines if a game port is installed.
PROTOTYPE....IntT HdwGam(NOARG)
#define HdwGam() (0 != (HdwFlg() & 0x01))
#define gameport() HdwGam()
ARGUMENTS....None
RETURNS
TRUE if game port is installed
FALSE otherwise
---------------------------------------------------------------------------
NAME.........HdwNdp <TcxlHdw.h> Macro
.............mathchip
DESCRIPTION
Determines if a math coprocesser is installed.
PROTOTYPE....IntT HdwNdp(NOARG)
#define HdwNdp() (0 != (HdwFlg() & 0x02))
#define mathchip() HdwNdp()
ARGUMENTS....None
RETURNS
TRUE if math chip is installed
FALSE otherwise
---------------------------------------------------------------------------
NAME.........HdwMou <TcxlHdw.h> Macro
DESCRIPTION
Determines if the PS/2 (Microchannel) BUS mouse is installed.
PROTOTYPE....IntT HdwMou(NOARG)
#define HdwMou() (0 != (HdwFlg() & 0x04))
ARGUMENTS....None
RETURNS
TRUE if Mouse installed
FALSE otherwise
Page 146 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........HdwMdm <TcxlHdw.h> Macro
DESCRIPTION
Determines if the PS/2 (Microchannel) modem is installed.
PROTOTYPE....IntT HdwMdm(NOARG)
#define HdwMdm() (0 != (HdwFlg() & 0x08))
ARGUMENTS....None
RETURNS
TRUE if mdoem installed
FALSE otherwise
---------------------------------------------------------------------------
NAME.........HdwC40 <TcxlHdw.h> Macro
DESCRIPTION
Determines if the initial video mode when the machine booted was
Color, 40 columns by 25 rows.
PROTOTYPE....IntT HdwC40(NOARG)
#define HdwC40() (0 != (HdwFlg() & 0x10))
ARGUMENTS....None
RETURNS
TRUE if machine booted in 40x25 color
FALSE otherwise
---------------------------------------------------------------------------
NAME.........HdwC80 <TcxlHdw.h> Macro
DESCRIPTION
Determines if the initial video mode when the machine booted was
Color, 80 columns by 25 rows.
PROTOTYPE....IntT HdwC80(NOARG)
#define HdwC80() (0 != (HdwFlg() & 0x20))
ARGUMENTS....None
RETURNS
TRUE if machine booted in 80x25 color
FALSE otherwise
TesSeRact CXL V5.5 Documentation Page 147
---------------------------------------------------------------------------
NAME.........HdwM80 <TcxlHdw.h> Macro
DESCRIPTION
Determines if the initial video mode when the machine booted was
Monochrome, 80 columns by 25 rows.
PROTOTYPE....IntT HdwM80(NOARG)
#define HdwM80() (0 != (HdwFlg() & 0x40))
ARGUMENTS....None
RETURNS
TRUE if machine booted in 80x25 monochrome
FALSE otherwise
---------------------------------------------------------------------------
NAME.........HdwDrv <TcxlHdw.h> Macro
.............numflop
DESCRIPTION
Returns the number of floppy disk drives installed.
PROTOTYPE....IntT HdwDrv(NOARG)
#define HdwDrv() (_HdwCtl.hdrv)
#define numflop() HdwDrv()
ARGUMENTS....None
RETURNS
The number of floppy disk drives installed.
---------------------------------------------------------------------------
NAME.........HdwPar <TcxlHdw.h> Macro
.............numpar
DESCRIPTION
Returns the number of parallel ports.
PROTOTYPE....IntT HdwPar(NOARG)
#define HdwPar() (_HdwCtl.hser)
#define numpar() HdwPar()
ARGUMENTS....None
RETURNS
The number of parallel ports installed.
Page 148 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........HdwSer <TcxlHdw.h> Macro
.............numser
DESCRIPTION
Returns the number of serial ports installed.
PROTOTYPE....IntT HdwSer(NOARG)
#define HdwSer() (_HdwCtl.hser)
#define numser() HdwSer()
ARGUMENTS....None
RETURNS
The number of serial ports installed.
---------------------------------------------------------------------------
Utility Routines
---------------------------------------------------------------------------
NAME.........Beep <TcxlDef.H> Macro
DESCRIPTION
Sounds a beep in the speaker.
PROTOTYPE....VOID Beep(NOARG);
#define Beep() _StdOut(BEL)
ARGUMENTS....None
RETURNS......None
SEE ALSO
_StdOut (Page 152)
---------------------------------------------------------------------------
NAME.........RandFile <TcxlDef.H>
DESCRIPTION
Creates a random file name.
PROTOTYPE....ChrP CTYP RandFile(NOARG);
ARGUMENTS....None
RETURNS
Address of the static string containing the random file name.
TesSeRact CXL V5.5 Documentation Page 149
---------------------------------------------------------------------------
NAME.........Sound <TcxlDef.H>
DESCRIPTION
Sounds a tone of specified pitch and duration.
PROTOTYPE....VOID CTYP Sound(WrdT pv, WrdT dt);
ARGUMENTS
pv - Pitch (0-65535)
dt - Duration (in timer ticks; 182=10 seconds)
RETURNS......None
---------------------------------------------------------------------------
NAME.........SysDate <TcxlDef.H>
DESCRIPTION
Returns a string containing the current system date.
PROTOTYPE....ChrP CTYP SysDate(IntT d);
ARGUMENTS
d - Date Time Code. One of the following:
Code Example
---- -------
0 December 3, 1988
1 3 Dec 88
2 12-3-88
3 12/3/88
4 3/12/88
5 12/03/88
RETURNS
Address of the static string containing the system date.
SEE ALSO
SysTime (Page 151)
Page 150 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........SysTime <TcxlDef.H>
DESCRIPTION
Returns a string containing the current system time.
PROTOTYPE....ChrP CTYP SysTime(IntT t);
ARGUMENTS
t - Time Type Code. Can be one of the following:
Code Example
---- -------
0 16:30:57.89
1 16:30:57
2 4:30 PM
3 4:30p
4 4:30
5 04:30
RETURNS
Address of the static string containing the system date.
SEE ALSO
SysDate (Page 150)
---------------------------------------------------------------------------
NAME.........TabNxt <TcxlDef.H>
DESCRIPTION
Calculates the next tab stop from given column and tab width.
PROTOTYPE....IntT PAS TabNxt(IntT c, IntT w);
ARGUMENTS
c - Column
w - Tab Width
RETURNS
The column of the next tab stop
TesSeRact CXL V5.5 Documentation Page 151
---------------------------------------------------------------------------
NAME........._Delay <TcxlDef.H>
DESCRIPTION
Delays program execution for a specified duration.
PROTOTYPE....VOID PAS _Delay(WrdT d);
ARGUMENTS
d - Duration (In Timer Ticks; 182 = 10 seconds)
RETURNS......None
SEE ALSO
_Timer (Page 153)
KeyTime (Page 122)
_WaitMs (Page 153)
---------------------------------------------------------------------------
NAME........._StdOut <TcxlDef.H>
DESCRIPTION
Outputs a character to the DOS Standard Output Device.
PROTOTYPE....VOID PAS _StdOut(ArgT ch);
ARGUMENTS
ch - Character to Output
RETURNS......None
SEE ALSO
_StdOutS (Page 152)
Beep (Page 149)
---------------------------------------------------------------------------
NAME........._StdOutS <TcxlDef.H>
DESCRIPTION
Outputs a string through the DOS Standard Output Device.
PROTOTYPE....VOID PAS _StdOutS(ChrP s);
ARGUMENTS
s - String to output.
RETURNS......None
SEE ALSO
_StdOut (Page 152)
Page 152 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME........._Timer <TcxlDef.H>
DESCRIPTION
Returns the value of the BIOS timer. This value is incremented by
one every 18.2 seconds.
PROTOTYPE....DwdT PAS _Timer(NOARG);
ARGUMENTS....None
RETURNS
Current value of the BIOS timer.
SEE ALSO
_Delay (Page 152)
_WaitMs (Page 153)
---------------------------------------------------------------------------
NAME........._WaitMs <TcxlDef.H>
DESCRIPTION
This is a millisecond-resolution delay function. Waits for the
specified number of milliseconds before returning control.
PROTOTYPE....VOID PAS _WaitMs(IntT ms)
ARGUMENTS
ms - Number of milliseconds to wait
RETURNS......None
SEE ALSO
_Delay (Page 152)
_Timer (Page 153)
TesSeRact CXL V5.5 Documentation Page 153
---------------------------------------------------------------------------
Memory Subsystem
---------------------------------------------------------------------------
NAME.........MemInit <TcxlMem.H>
DESCRIPTION
This routine initializes the Memory Subsystem. It is called
automatically from inside TcxlInit().
PROTOTYPE....VOID PAS MemInit(NOARG);
ARGUMENTS....None
RETURNS......None
---------------------------------------------------------------------------
NAME.........MemTerm <TcxlMem.H> Macro
DESCRIPTION
This routine currently does nothing. It is provided for future
compatibility.
PROTOTYPE....VOID MemTerm(NOARG);
#define MemTerm()
ARGUMENTS....None
RETURNS......None
---------------------------------------------------------------------------
Expanded Memory Routines
---------------------------------------------------------------------------
NAME.........EMSalloc <TcxlMem.H>
DESCRIPTION
This function allocates Expanded Memory pages.
PROTOTYPE...._HdlT PAS EMSalloc(IntT np);
ARGUMENTS
np - Number of 16K Pages to allocate
RETURNS
The EMS handle associate with this block of pages.
On error, returns FALSE and sets MemEerr to the error code.
Page 154 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........EMSfree <TcxlMem.H>
DESCRIPTION
Frees a block of EMS pages.
PROTOTYPE....IntT PAS EMSfree(_HdlT eh);
ARGUMENTS
eh - EMS Handle
RETURNS
TRUE on success, FALSE on failure, and sets MemEerr.
---------------------------------------------------------------------------
NAME.........EMSgetnam <TcxlMem.H>
DESCRIPTION
Returns the "name" of the EMS block associated with the passed
handle.
PROTOTYPE....ChrFP PAS EMSgetnam(_HdlT eh, ChrFP np);
ARGUMENTS
eh - EMS Handle
np - Pointer to 9-byte buffer area
RETURNS
Pointer to Buffer
---------------------------------------------------------------------------
NAME.........EMScount <TcxlMem.H>
DESCRIPTION
Gets the number of EMS handles previously allocated.
PROTOTYPE....IntT PAS EMScount(NOARG);
ARGUMENTS....None
RETURNS
Handle Count on success, FALSE on failure, and sets MemEerr.
TesSeRact CXL V5.5 Documentation Page 155
---------------------------------------------------------------------------
NAME.........EMSpages <TcxlMem.H>
DESCRIPTION
Gets the number of EMS pages associated with the passed handle.
PROTOTYPE....IntT PAS EMSpages(_HdlT eh);
ARGUMENTS
eh - EMS Handle
RETURNS
Page Count on success, FALSE on failure, and sets MemEerr.
---------------------------------------------------------------------------
NAME.........EMSmap <TcxlMem.H>
DESCRIPTION
Maps a "logical" EMS page into a "physical" hardware location
PROTOTYPE....IntT PAS EMSmap(_HdlT eh, IntT pp, IntT lp);
ARGUMENTS
eh - EMS Handle
pp - Physical Page
lp - Logical Page
RETURNS
TRUE on success, FALSE on failure, and sets MemEerr.
---------------------------------------------------------------------------
NAME.........EMSquery <TcxlMem.H>
DESCRIPTION
Get the number of free EMS pages. Also sets the size parameters in
_MemCtl.
PROTOTYPE....IntT PAS EMSquery(NOARG);
ARGUMENTS....None
RETURNS
Number of Free Pages; FALSE on failure, and sets MemEerr.
Page 156 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........EMSrest <TcxlMem.H>
DESCRIPTION
Restores the EMS Page Map.
PROTOTYPE....IntT PAS EMSrest(_HdlT eh);
ARGUMENTS
eh - EMS Handle
RETURNS
TRUE on success, FALSE on error, and sets MemEerr.
---------------------------------------------------------------------------
NAME.........EMSsave <TcxlMem.H>
DESCRIPTION
Saves the EMS Page Map.
PROTOTYPE....IntT PAS EMSsave(_HdlT eh);
ARGUMENTS
eh - EMS Handle
RETURNS
TRUE on success, FALSE on error, and sets MemEerr.
---------------------------------------------------------------------------
NAME.........EMSsetnam <TcxlMem.H>
DESCRIPTION
Assigns a "name" to be associated with the particular EMS handle.
PROTOTYPE....IntT PAS EMSsetnam(_HdlT eh, ChrFP np);
ARGUMENTS
eh - EMS Handle
np - NULL-terminated Handle "name"
RETURNS
TRUE on success, FALSE on error, and sets MemEerr.
TesSeRact CXL V5.5 Documentation Page 157
---------------------------------------------------------------------------
NAME.........EMSstat <TcxlMem.H>
DESCRIPTION
Checks the status of the EMS driver.
PROTOTYPE....IntT PAS EMSstat(NOARG);
ARGUMENTS....None
RETURNS
TRUE if EMS is installed and active, FALSE on error, and sets MemEerr.
---------------------------------------------------------------------------
Extended Memory Routines
---------------------------------------------------------------------------
NAME.........XMSalloc <TcxlMem.H>
DESCRIPTION
Allocates a block of the given size out of the pool of free
extended memory.
PROTOTYPE...._HdlT PAS XMSalloc(WrdT nk);
ARGUMENTS
nk - K bytes to allocate
RETURNS
XMS Handle if successful, FALSE on error, and sets MemXerr.
---------------------------------------------------------------------------
NAME.........XMScopy <TcxlMem.H>
DESCRIPTION
Copy from a block of memory to another block of memory. May be
used for copys between "normal" and XMS memory in either direction,
between two different XMS areas, or between two blocks of DOS
memory.
PROTOTYPE....IntT PAS XMScopy(_XmsFP xp);
ARGUMENTS
xp - Correctly Defined XMS_Move structure (see the XMS
documentation for details)
RETURNS
TRUE if successful, FALSE on error, and sets MemXerr.
Page 158 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........XMSfree <TcxlMem.H>
DESCRIPTION
Free a block of extended memory previously allocated.
PROTOTYPE....IntT PAS XMSfree(_HdlT xh);
ARGUMENTS
xh - XMS Handle
RETURNS
RETURNS
TRUE if successful, FALSE on error, and sets MemXerr.
---------------------------------------------------------------------------
NAME.........XMSavail <TcxlMem.H>
DESCRIPTION
Get amount of free XMS available.
PROTOTYPE....IntT PAS XMSavail(NOARG);
ARGUMENTS....None
RETURNS
Largest available block of XMS memory. Also updates globals in
_MemCtl.
---------------------------------------------------------------------------
NAME.........XMSquery <TcxlMem.H>
DESCRIPTION
Determine the amount of memory used by the passed XMS handle.
PROTOTYPE....IntT PAS XMSquery(_HdlT xh);
ARGUMENTS
xh - XMS Handle
RETURNS
Length of the XMS block. FALSE on error, and sets MemXerr.
TesSeRact CXL V5.5 Documentation Page 159
---------------------------------------------------------------------------
NAME.........XMSlock <TcxlMem.H>
DESCRIPTION
This function locks an extended memory block, and returns its base
address as a 32-bit linear address. Locked memory blocks are
guaranteed not to move, but should be unlocked as soon as possible.
A block does NOT have to be locked in order to use the XMSCopy()
function.
PROTOTYPE...._AdrT PAS XMSlock(_HdlT xh);
ARGUMENTS
xh - XMS Handle
RETURNS
32-bit linear pointer to base of memory block. 0 if error.
---------------------------------------------------------------------------
NAME.........XMSrealloc <TcxlMem.H>
DESCRIPTION
Changes the size of a block of extended memory that has been
previously allocated.
PROTOTYPE....IntT PAS XMSrealloc(_HdlT xh, WrdT ns);
ARGUMENTS
xh - XMS Handle
ns - New Size (in K)
RETURNS
TRUE if successful, FALSE on error, and sets MemXerr.
---------------------------------------------------------------------------
NAME.........XMSunlock <TcxlMem.H>
DESCRIPTION
Unlocks a previously-locked Extended Memory block.
PROTOTYPE....IntT PAS XMSunlock(_HdlT xh);
ARGUMENTS
xh - XMS Handle
RETURNS
TRUE if successful, FALSE on error, and sets MemXerr.
Page 160 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME........._A20_LD <TcxlMem.H>
............._A20_LE
............._A20chk
............._A20dis
............._A20ena
DESCRIPTION
This functions manipulate the A20 line on 286 processors. Under
normal conditions, it is not necessary to manipulate this line to
access XMS; consult the XMS documentation for details on these
functions.
PROTOTYPE....IntT PAS _A20_LD(NOARG);
.............IntT PAS _A20_LE(NOARG);
.............IntT PAS _A20chk(NOARG);
.............IntT PAS _A20dis(NOARG);
.............IntT PAS _A20ena(NOARG);
ARGUMENTS....None
RETURNS
TRUE if successful, FALSE on error, and sets MemXerr.
---------------------------------------------------------------------------
NAME.........UMBalloc <TcxlMem.H>
DESCRIPTION
This function allocates an Upper Memory Block. To determine the
largest available UMB block, call this function with the size
parameter set to 0xFFFF.
PROTOTYPE....IntT PAS UMBalloc(WrdT np, _SegFP ps);
ARGUMENTS
np - Number of Paragraphs to Allocate
ps - FAR Pointer to location to store returned segment address
RETURNS
If the returned segment address is zero, this function returns the
largest available UMB area. If the returned segment is non-zero, the
memory is allocated, and this function returns the actual amount
allocated.
TesSeRact CXL V5.5 Documentation Page 161
---------------------------------------------------------------------------
NAME.........UMBfree <TcxlMem.H>
DESCRIPTION
Frees a previously allocated UMB.
PROTOTYPE....IntT PAS UMBfree(_SegT ps);
ARGUMENTS
ps - Segment address to free
RETURNS
TRUE if successful, FALSE on error, and sets MemXerr.
---------------------------------------------------------------------------
NAME.........HMAalloc <TcxlMem.H>
DESCRIPTION
Reserves the High Memory Area for use by this application program.
PROTOTYPE....IntT PAS HMAalloc(NOARG);
ARGUMENTS....None
RETURNS
TRUE if successful, FALSE on error, and sets MemXerr.
---------------------------------------------------------------------------
NAME.........HMAfree <TcxlMem.H>
DESCRIPTION
Frees the HMA area for use by other programs.
PROTOTYPE....IntT PAS HMAfree(NOARG);
ARGUMENTS....None
RETURNS
TRUE if successful, FALSE on error, and sets MemXerr.
Page 162 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
Printer Subsystem
---------------------------------------------------------------------------
NAME........._LPputC <TcxlPrn.H>
DESCRIPTION
This is an internal routine to output a character to the printer
port, expanding a single "\n" to "\r\n".
PROTOTYPE....VOID PAS _LPputC(IntT ch);
ARGUMENTS
ch - Char to Output
---------------------------------------------------------------------------
NAME.........lcrlf <TcxlPrn.H> Macro
DESCRIPTION
Prints a carriage return and line feed on the printer (PRN).
PROTOTYPE....VOID lcrlf(NOARG);
#define lcrlf() lprintc(0x0A)
ARGUMENTS....None
---------------------------------------------------------------------------
NAME.........lprintc <TcxlPrn.H> Macro
DESCRIPTION
Prints a character on the printer (PRN).
PROTOTYPE....VOID lprintc(IntT ch);
#define lprintc(c) _LPputC(c);
ARGUMENTS
ch - Character to print
---------------------------------------------------------------------------
NAME.........lprintf <TcxlPrn.H>
DESCRIPTION
Sends formatted output to the printer (PRN). Works similar to the
standard C printf() function.
PROTOTYPE....VOID CDC lprintf(ChrP fs, ...);
ARGUMENTS
fs - Format String
... - Additional Arguments
TesSeRact CXL V5.5 Documentation Page 163
---------------------------------------------------------------------------
NAME.........lprintn <TcxlPrn.H>
DESCRIPTION
Prints a fixed width buffer on the printer (PRN).
PROTOTYPE....VOID CTYP lprintn(ChrP ps, IntT nc);
ARGUMENTS
ps - Buffer to Print
nc - Number of Bytes to Print
---------------------------------------------------------------------------
NAME.........lprintns <TcxlPrn.H>
DESCRIPTION
Prints a string to a fixed width on the printer (PRN).
PROTOTYPE....VOID CTYP lprintns(ChrP ps, IntT nc);
ARGUMENTS
ps - String to Print
nc - Number of Characters to Print
---------------------------------------------------------------------------
NAME.........lprints <TcxlPrn.H>
DESCRIPTION
Prints a string on the printer (PRN).
PROTOTYPE....VOID CTYP lprints(ChrP ps);
ARGUMENTS
ps - String to Print
---------------------------------------------------------------------------
NAME.........lprintsb <TcxlPrn.H>
DESCRIPTION
Prints a bold-faced string on the printer (PRN).
PROTOTYPE....VOID CTYP lprintsb(ChrP ps, IntT nr);
ARGUMENTS
ps - String to Print
nr - Number of Repetions
Page 164 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........lprintsu <TcxlPrn.H>
DESCRIPTION
Prints an underlined string on the printer (PRN).
PROTOTYPE....VOID CTYP lprintsu(ChrP ps);
ARGUMENTS
ps - String to Print
---------------------------------------------------------------------------
NAME.........scrndump
DESCRIPTION
Dumps the current screen to the printer (PRN).
PROTOTYPE....VOID CTYP scrndump(NOARG);
ARGUMENTS....None
---------------------------------------------------------------------------
NAME.........windump <TcxlPrn.H>
DESCRIPTION
Dumps a screen window to the printer (PRN).
PROTOTYPE....VOID CTYP windump(IntT sr, IntT sc, IntT er, IntT ec);
ARGUMENTS
sr - Start Row
sc - Start Column
er - End Row
ec - End Column
---------------------------------------------------------------------------
OpSys Subsystem
---------------------------------------------------------------------------
NAME........._ChgDir <TcxlDos.H>
DESCRIPTION
DOS Change Current Directory Routine.
PROTOTYPE....IntT PAS _ChgDir(ChrP p);
ARGUMENTS
p - New Directory Name
RETURNS
0 on success, 1 on failure.
TesSeRact CXL V5.5 Documentation Page 165
---------------------------------------------------------------------------
NAME........._ChgDrv <TcxlDos.H>
DESCRIPTION
DOS Change Current Drive Routine.
PROTOTYPE....IntT PAS _ChgDrv(IntT d);
ARGUMENTS
d - New Drive Letter
RETURNS
Last Drive in System as an upper-case letter
---------------------------------------------------------------------------
NAME........._FndFst <TcxlDos.H>
DESCRIPTION
DOS FindFirst Routine.
PROTOTYPE....IntT PAS _FndFst(ChrP p, FfbP f, IntT a);
ARGUMENTS
p - FileSpec to match
f - DTA structure
a - Attribute to match
RETURNS
0 on success, 1 on failure.
---------------------------------------------------------------------------
NAME........._FndNxt <TcxlDos.H>
DESCRIPTION
DOS FindNext Routine.
PROTOTYPE....IntT PAS _FndNxt(FfbP f);
ARGUMENTS
f - DTA structure
RETURNS
0 on success, 1 on failure.
Page 166 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME........._GetDir <TcxlDos.H>
DESCRIPTION
DOS Get Directory Routine.
PROTOTYPE....VOID PAS _GetDir(IntT d, ChrP p);
ARGUMENTS
d - Drive Letter
p - Return Buffer
RETURNS......None
---------------------------------------------------------------------------
NAME........._GetDrv <TcxlDos.H>
DESCRIPTION
DOS Get Current Drive Routine
PROTOTYPE....IntT PAS _GetDrv(NOARG);
ARGUMENTS....None
RETURNS
The current drive as an upper-case letter.
---------------------------------------------------------------------------
NAME........._InpByt <TcxlDos.H>
DESCRIPTION
Read a byte from a hardware port.
PROTOTYPE....IntT PAS _InpByt(WrdT p);
ARGUMENTS
p - Port to Read
RETURNS
The returned value.
TesSeRact CXL V5.5 Documentation Page 167
---------------------------------------------------------------------------
NAME........._InpWrd <TcxlDos.H>
DESCRIPTION
Read a word from a hardware port.
PROTOTYPE....WrdT PAS _InpWrd(WrdT p);
ARGUMENTS
p - Port to Read
RETURNS
The returned value
---------------------------------------------------------------------------
NAME........._IntDis <TcxlDos.H>
DESCRIPTION
Disable Interrupts.
PROTOTYPE....VOID PAS _IntDis(NOARG);
ARGUMENTS....None
RETURNS......None
---------------------------------------------------------------------------
NAME........._IntEna <TcxlDos.H>
DESCRIPTION
Enable Interrupts.
PROTOTYPE....VOID PAS _IntEna(NOARG);
ARGUMENTS....None
RETURNS......None
Page 168 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME........._OutByt <TcxlDos.H>
DESCRIPTION
Output a byte to a hardware port.
PROTOTYPE....VOID PAS _OutByt(WrdT p, IntT b);
ARGUMENTS
p - Port to Write
b - Byte to Write
RETURNS......None
---------------------------------------------------------------------------
NAME........._OutWrd <TcxlDos.H>
DESCRIPTION
Output a word to a hardware port.
PROTOTYPE....VOID PAS _OutWrd(WrdT p, WrdT w);
ARGUMENTS
p - Port to Write
w - Word to Write
RETURNS......None
TesSeRact CXL V5.5 Documentation Page 169
---------------------------------------------------------------------------
Bottom Level Functions
Video Access Subsystem
Direct Hardware Access
---------------------------------------------------------------------------
NAME.........VidOfs <TcxlVid.H> Macro
DESCRIPTION
Convert a row/column coordinate to an offset into the video buffer.
PROTOTYPE....WrdT VidOfs(IntT r, IntT c);
#define VidOfs(r,c) ((((r)*VidWid)+(c))<<1)
ARGUMENTS
r - Row
c - Column
RETURNS
Offset into video buffer
---------------------------------------------------------------------------
NAME.........VgetDvb <_TcxlVid.H>
DESCRIPTION
Returns alternate buffer segment, if it exists.
PROTOTYPE....WrdT PAS VgetDvb(WrdT v);
ARGUMENTS
v - Assumed Video Buffer
RETURNS
Actual Video Buffer
---------------------------------------------------------------------------
NAME.........VisaEga <_TcxlVid.H>
DESCRIPTION
Determines whether video is an EGA/VGA card.
PROTOTYPE....IntT PAS VisaEga(NOARG);
ARGUMENTS....None
RETURNS
-1 if not EGA/VGA BIOS, 0 if EGA/VGA/Color, or 1 if EGA/VGA/Mono
Page 170 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........VisaPs2 <_TcxlVid.H>
DESCRIPTION
Determines whether we have a PS/2 BIOS
PROTOTYPE....IntT PAS VisaPs2(NOARG);
ARGUMENTS....None
RETURNS
-1 if not a PS/2 bios, else adapter/monitor type.
Monitor types returned:
0 - No Display
1 - Mono/Mono
2 - CGA/Color
3 - Reserved
4 - EGA/Color
5 - EGA/Mono
6 - PGA/Color
7 - VGA/Analog Mono
8 - VGA/Analog Color
---------------------------------------------------------------------------
NAME.........VsetChr <_TcxlVid.H>
DESCRIPTION
Select/load EGA/VGA character-set using AX=<f>
PROTOTYPE....VOID PAS VsetChr(WrdT f);
ARGUMENTS
f - AX value for call
RETURNS......None
TesSeRact CXL V5.5 Documentation Page 171
---------------------------------------------------------------------------
Ultravision Support
---------------------------------------------------------------------------
NAME........._VuvDis <_TcxlVid.H>
DESCRIPTION
Disables UltraVision Video Control. Restores video display to
default settings.
PROTOTYPE....VOID PAS _VuvDis(NOARG);
ARGUMENTS....None
RETURNS......None
---------------------------------------------------------------------------
NAME........._VuvEna <_TcxlVid.H>
DESCRIPTION
Enables UltraVision, restoring previous UV video parameters.
PROTOTYPE....VOID PAS _VuvEna(NOARG);
ARGUMENTS....None
RETURNS......None
---------------------------------------------------------------------------
NAME........._VuvGet <_TcxlVid.H>
DESCRIPTION
Get Ultravision Mode, initialize flags. Called internally by
VidInit().
PROTOTYPE....IntT PAS _VuvGet(NOARG);
ARGUMENTS....None
RETURNS
UV Text Mode
Page 172 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME........._VuvSet <_TcxlVid.H>
DESCRIPTION
Sets UltraVision text mode.
PROTOTYPE....VOID PAS _VuvSet(IntT md);
ARGUMENTS
md - UV Mode
RETURNS......None
---------------------------------------------------------------------------
NAME........._VuvVal <_TcxlVid.H>
DESCRIPTION
Validates UltraVision text mode. Used to determine whether the
passed mode is valid for the installed card and version of
UltraVision.
PROTOTYPE....VOID PAS _VuvVal(IntT md);
ARGUMENTS
md - UV Mode
RETURNS
0 if mode is valid, -1 if invalid
---------------------------------------------------------------------------
Internal Hardware Calls
---------------------------------------------------------------------------
NAME........._VgetN <_TcxlVid.H> Macro
............._VgetN_
DESCRIPTION
Get <n> VcelTs at VposT <v> to <d> via BIOS or DMA,
PROTOTYPE....VOID _VgetN(VcelP p, VposT v, IntT n);
.............VOID PAS _VgetN_(VcelP p, WrdT v, IntT n);
#define _VgetN(p,v,n) (_VgetN_((p),VposW(v),(n)))
TesSeRact CXL V5.5 Documentation Page 173
---------------------------------------------------------------------------
NAME........._VgetS <_TcxlVid.H> Macro
............._VgetS_
DESCRIPTION
Get <n> chars at VposT <v> to <d>, skipping attrs, via BIOS or DMA.
PROTOTYPE....VOID _VgetS(BytP p, VposT v, IntT n);
.............VOID PAS _VgetS_(BytP p, WrdT v, IntT n);
#define _VgetS(p,v,n) (_VgetS_((p),VposW(v),(n)))
---------------------------------------------------------------------------
NAME........._VgetW <_TcxlVid.H> Macro
............._VgetW_
DESCRIPTION
Get VcelT at VposT <v> via BIOS or DMA.
PROTOTYPE....VOID _VgetW(VposT v, VcelT x);
.............WrdT PAS _VgetW_(WrdT v);
#define _VgetW(v,x) (VcelW(x)=_VgetW_(VposW(v)))
---------------------------------------------------------------------------
NAME........._VgetX <_TcxlVid.H> Macro
............._VgetX_
DESCRIPTION
Get VcelT at cursor (BIOS)
PROTOTYPE....VOID _VgetX(VcelT x);
.............WrdT PAS _VgetX_(NOARG);
#define _VgetX(x) (VcelW(x)=_VgetX_())
---------------------------------------------------------------------------
NAME........._VputA <_TcxlVid.H> Macro
............._VputA_
DESCRIPTION
Put <n> dup attrs <a> at VposT <v>, skipping chars, via BIOS or
DMA.
PROTOTYPE....VOID _VputA(VposT v, IntT a, IntT n);
.............VOID PAS _VputA_(WrdT v, IntT a, IntT n);
#define _VputA(v,a,n) (_VputA_(VposW(v),(a),(n)))
Page 174 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME........._VputB <_TcxlVid.H> Macro
............._VputB_
DESCRIPTION
Put <n> dup chars <c> and attrs <a> at VposT <v> via BIOS or DMA.
PROTOTYPE....VOID _VputB(VposT v, IntT c, IntT a, IntT n);
.............VOID PAS _VputB_(WrdT v, IntT c, IntT a, IntT n);
#define _VputB(v,c,a,n) (_VputB_(VposW(v),(c),(a),(n)))
---------------------------------------------------------------------------
NAME........._VputC <_TcxlVid.H> Macro
............._VputC_
DESCRIPTION
Put <n> dup chars <c> at VposT <v>, skipping attrs, via BIOS or
DMA.
PROTOTYPE....VOID _VputC(VposT v, IntT c, IntT n);
.............VOID PAS _VputC_(WrdT v, IntT c, IntT n);
#define _VputC(v,c,n) (_VputC_(VposW(v),(c),(n)))
---------------------------------------------------------------------------
NAME........._VputN <_TcxlVid.H> Macro
............._VputN_
DESCRIPTION
Put <n> VcelTs from <p> at VposT <v> via BIOS or DMA.
PROTOTYPE....VOID _VputN(VposT v, VcelP p, WrdT n);
.............VOID PAS _VputN_(WrdT v, VcelP p, IntT n);
#define _VputN(v,p,n) (_VputN_(VposW(v),(p),(n)))
---------------------------------------------------------------------------
NAME........._VputS <_TcxlVid.H> Macro
............._VputS_
DESCRIPTION
Put string at <p> with attr <a> at VposT <v> via BIOS or DMA.
PROTOTYPE....VOID _VputS(VposT v, ChrP p, IntT a);
.............VOID PAS _VputS_(WrdT v, ChrP p, IntT a);
#define _VputS(v,p,a) (_VputS_(VposW(v),(p),(a)))
TesSeRact CXL V5.5 Documentation Page 175
---------------------------------------------------------------------------
NAME........._VputW <_TcxlVid.H> Macro
............._VputW_
DESCRIPTION
Put <n> dup VcelTs <c> at VposT <v> via BIOS or DMA.
PROTOTYPE....VOID _VputW(VposT v, VcelT c, IntT n);
.............VOID PAS _VputW_(WrdT v, WrdT c, IntT n);
#define _VputW(v,c,n) (_VputW_(VposW(v),VcelW(c),(n)))
---------------------------------------------------------------------------
NAME........._VputX <_TcxlVid.H> Macro
............._VputX_
DESCRIPTION
Put VcelT <x> at cursor (BIOS)
PROTOTYPE....VOID _VputX(VcelT x);
.............VOID PAS _VputX_(WrdT x);
#define _VputX(x) (_VputX_(VcelW(x)))
---------------------------------------------------------------------------
Keyboard Access Subsystem
---------------------------------------------------------------------------
NAME.........KscnCod <TcxlKey.H>
DESCRIPTION
This function returns the appropriate scan code for the passed
ASCII character.
PROTOTYPE....IntT CTYP KscnCod(IntT c);
ARGUMENTS
c - Character to Translate
RETURNS
Scan code for the character
---------------------------------------------------------------------------
NAME.........KcapOff <TcxlKey.H> Macro
DESCRIPTION
This function turns CapsLock off.
PROTOTYPE....VOID KcapOff(NOARG);
#define KcapOff() (_KeySet(KEY_CAP, 0))
Page 176 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........KcapOn <TcxlKey.H> Macro
DESCRIPTION
This function turns CapsLock on.
PROTOTYPE....VOID KcapOn(NOARG);
#define KcapOn() (_KeySet(KEY_CAP, 1))
---------------------------------------------------------------------------
NAME.........KextOff <TcxlKey.H> Macro
DESCRIPTION
This function turns off support for the enhanced keyboard, if such
support has already been enabled.
PROTOTYPE....VOID KextOff(NOARG);
#define KextOff() (KctlFlg &= ~KEY_EXT)
---------------------------------------------------------------------------
NAME.........KextOn <TcxlKey.H> Macro
DESCRIPTION
This function enables enhanced keyboard support, if TCXL was able
to autodetect the presence of an enhanced keyboard AND an enhanced
BIOS.
PROTOTYPE....VOID KextOn(NOARG);
#define KextOn() if(TcxlKey) KctlFlg |= KEY_EXT
---------------------------------------------------------------------------
NAME.........KinsOff <TcxlKey.H> Macro
DESCRIPTION
This function turns Insert off.
PROTOTYPE....VOID KinsOff(NOARG);
#define KinsOff() (_KeySet(KEY_INS, 0))
---------------------------------------------------------------------------
NAME.........KinsOn <TcxlKey.H> Macro
DESCRIPTION
This function turns Insert on.
PROTOTYPE....VOID KinsOn(NOARG);
#define KinsOn() (_KeySet(KEY_INS, 1))
TesSeRact CXL V5.5 Documentation Page 177
---------------------------------------------------------------------------
NAME.........KnumOff <TcxlKey.H> Macro
DESCRIPTION
This function turns Numlock off.
PROTOTYPE....VOID KnumOff(NOARG);
#define KnumOff() (_KeySet(KEY_NUM, 0))
---------------------------------------------------------------------------
NAME.........KnumOn <TcxlKey.H> Macro
DESCRIPTION
This function turns Numlock on.
PROTOTYPE....VOID KnumOn(NOARG);
#define KnumOn() (_KeySet(KEY_NUM, 1))
---------------------------------------------------------------------------
NAME........._KeyExt <TcxlKey.H>
DESCRIPTION
Determine if the machine supports extended BIOS keyboard codes.
PROTOTYPE....IntT PAS _KeyExt(NOARG);
ARGUMENTS....None
RETURNS
Zero if BIOS doesn't support extended codes
One if BIOS support exists; also updates _KeyCtl.kflg
---------------------------------------------------------------------------
NAME........._KeyGet <TcxlKey.H>
DESCRIPTION
Get the next keystroke from the BIOS.
PROTOTYPE....KeyT PAS _KeyGet(NOARG);
ARGUMENTS....None
RETURNS
ASCII/ScanCode Pair as returned by INT 16h
Page 178 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME........._KeyHit <TcxlKey.H>
DESCRIPTION
Check to see if a key is waiting from BIOS
PROTOTYPE....IntT PAS _KeyHit(NOARG);
ARGUMENTS....None
RETURNS
1 if a key is waiting
0 if no key is waiting
---------------------------------------------------------------------------
NAME........._KeySet <TcxlKey.H>
DESCRIPTION
Toggle Keyboard Shift-State
PROTOTYPE....VOID PAS _KeySet(IntT b, IntT s);
ARGUMENTS
b - State to toggle
s - 0 means turn off, 1 means turn on
RETURNS......NONE
---------------------------------------------------------------------------
NAME........._KeySta <TcxlKey.H>
DESCRIPTION
Returns the status of the keyboard control keys.
PROTOTYPE....WrdT PAS _KeySta(NOARG);
ARGUMENTS....None
RETURNS
Status Word of the Keyboard Flag
TesSeRact CXL V5.5 Documentation Page 179
---------------------------------------------------------------------------
NAME.........KqueChk Macro
DESCRIPTION
This function determines if any keystrokes are waiting in the
internal keyboard queue.
PROTOTYPE....IntT KqueChk(NOARG);
#define KqueChk() (KctlCnt > 0)
ARGUMENTS....None
RETURNS
TRUE if keys are waiting, FALSE otherwise
---------------------------------------------------------------------------
NAME.........KqueClr <TcxlKey.H>
DESCRIPTION
Clears the internal keyboard queue.
PROTOTYPE....VOID PAS KqueClr(NOARG);
ARGUMENTS....None
RETURNS......None
---------------------------------------------------------------------------
NAME.........KqueGet <TcxlKey.H>
DESCRIPTION
Returns the next keycode from the internal queue.
PROTOTYPE....KeyT PAS KqueGet(NOARG);
ARGUMENTS....None
RETURNS
Next keycode; 0 if no keys are in queue
Page 180 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........KquePut <TcxlKey.H>
DESCRIPTION
Inserts the passed keystroke into the internal keyboard queue.
PROTOTYPE....IntT PAS KquePut(KeyT k);
ARGUMENTS
k - Keystroke to Enqueue
RETURNS
0 on success, 1 if queue is full
---------------------------------------------------------------------------
NAME.........KqueStr <TcxlKey.H>
DESCRIPTION
Inserts the passed string into the internal keyboard queue. This
is an ASCII-only string; scan codes are inserted based on the
KscnCod() (Page 176) function.
PROTOTYPE....IntT CTYP KqueStr(ChrP s);
s - String to Enqueue
RETURNS
0 on success, 1 if queue is full
TesSeRact CXL V5.5 Documentation Page 181
---------------------------------------------------------------------------
Mouse Access Subsystem
---------------------------------------------------------------------------
NAME.........MSclear <TcxlMou.H>
DESCRIPTION
Clear mouse button presses and releases and update _MouCtl.
PROTOTYPE....VOID PAS MSclear(NOARG);
ARGUMENTS....None
RETURNS......None
Page 182 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........MScurs <TcxlMou.H>
DESCRIPTION
Sets the mouse text cursor type. The mouse cursor can be a
hardware or softare cursor. The hardware cursor is the same as the
normal cursor you see when you are at the DOS prompt. Because the
mouse's hardware cursor is the same as the normal cursor, they can
interfere with each other, making this method impractical to use in
most cases. The software mouse cursor is a text box that can
reveal the underlying character. This is the cursor most used by
programs including other TCXL mouse support functions.
PROTOTYPE....VOID PAS MScurs(WrdT t, WrdT s, WrdT c);
ARGUMENTS
t - Cursor Type (0=software, 1=hardware)
s - Screen Mask (Software) or Start Scan Line (Hardware)
c - Cursor Mask (Software) or End Scan Line (Hardware)
If using a software cursor, the screen mask determines which of the
characters attributes are preserved. It is ANDed with the screen
character and attribute (See Appendix A). The cursor mask is used to
determine which of the characteristics are changed by the cursor. The
cmask is XORed with the result of (smask AND character-attribute).
The bit format for both smask and cmask are:
Bit............Content
---............-------
0-7............ASCII character code
8-10...........foreground color
11.............0=intensity off, 1=intensity on
12-14..........background color
15.............0=no blink, 1=blink
The default mouse cursor is "Software, Smask=0xFFFF, Cmask=0x7700".
RETURNS......None
TesSeRact CXL V5.5 Documentation Page 183
---------------------------------------------------------------------------
NAME.........MSgoto <TcxlMou.H>
DESCRIPTION
Sets the mouse cursor coordinates.
PROTOTYPE....VOID PAS MSgoto(IntT r, IntT c);
ARGUMENTS
r - Mouse Row
c - Mouse Column
RETURNS......None
---------------------------------------------------------------------------
NAME.........MShide <TcxlMou.H>
DESCRIPTION
Hides the mouse cursor.
PROTOTYPE....VOID PAS MShide(NOARG);
ARGUMENTS....None
RETURNS......None
---------------------------------------------------------------------------
NAME.........MShome <TcxlMou.H>
DESCRIPTION
Home the mouse to the center of the screen and clear the internal
counters.
PROTOTYPE....VOID PAS MShome(NOARG);
ARGUMENTS....None
RETURNS......None
---------------------------------------------------------------------------
NAME.........MSinit <TcxlMou.H>
DESCRIPTION
Determines if a mouse is present. If so, initializes mouse to the
default type, and clears all counters. This function is automatically
called during TcxlInit().
PROTOTYPE....IntT PAS MSinit(NOARG);
ARGUMENTS....None
RETURNS
Nonzero if mouse is present.
Page 184 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........MSkeys <TcxlMou.H>
DESCRIPTION
Assigns key-bindings to mouse buttins, for use with MOU_KEY
support.
PROTOTYPE....VOID PAS MSkeys(KeyT l, KeyT r, KeyT m);
ARGUMENTS
l - KeyCode for Left Button (Default [Enter])
r - KeyCode for Right Button (Default [Esc])
m - KeyCode for Middle Button (Default [F1])
RETURNS......None
---------------------------------------------------------------------------
NAME.........MSlimit <TcxlMou.H>
DESCRIPTION
Sets the mouse's upper and lower horizontal boundaries, and also
sets the left and right vertical boundaries.
PROTOTYPE....VOID PAS MSlimit(IntT sr, IntT sc, IntT er, IntT ec);
ARGUMENTS
sr - Upper Row Boundary
sc - Left Column Boundary
er - Bottom Row Boundary
ec - Right Column Boundary
RETURNS......None
---------------------------------------------------------------------------
NAME.........MSmove <TcxlMou.H>
DESCRIPTION
Update _MouCtl with info about the movement of the mouse.
PROTOTYPE....VOID PAS MSmove(NOARG);
ARGUMENTS....None
RETURNS......None
TesSeRact CXL V5.5 Documentation Page 185
---------------------------------------------------------------------------
NAME.........MSpop <TcxlMou.H>
DESCRIPTION
Pop and return pushed mouse support level and cursor position from
_MouCtl.
PROTOTYPE....IntT PAS MSpop(NOARG);
ARGUMENTS....None
RETURNS......None
---------------------------------------------------------------------------
NAME.........MSpress <TcxlMou.H>
DESCRIPTION
Update _MouCtl with info about mouse button presses.
PROTOTYPE....VOID PAS MSpress(IntT b);
ARGUMENTS
b - Button (0=left, 1=right, 2=middle)
RETURNS......None
---------------------------------------------------------------------------
NAME.........MSpush <TcxlMou.H>
DESCRIPTION
Push current mouse support-level and cursor position in _MouCtl and
replace with passed parameter.
PROTOTYPE....VOID PAS MSpush(IntT m);
ARGUMENTS
m - New Mouse Support-Level
(See Appendix C [Mouse Access Subsystem])
RETURNS......None
Page 186 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........MSreles <TcxlMou.H>
DESCRIPTION
Update _MouCtl with info about mouse button releases.
PROTOTYPE....VOID PAS MSreles(IntT b);
ARGUMENTS
b - Button (0=left, 1=right, 2=middle)
RETURNS......None
---------------------------------------------------------------------------
NAME.........MSshow <TcxlMou.H> Macro
DESCRIPTION
Reveals the hidden mouse cursor.
PROTOTYPE....VOID MSshow(VOID);
#define MSshow() (_MSsho(0))
ARGUMENTS....None
RETURNS......None
---------------------------------------------------------------------------
NAME.........MSspeed <TcxlMou.H>
DESCRIPTION
Adjusts the mouse's speed by changing its sensitivity.
PROTOTYPE....VOID PAS MSspeed(IntT x, IntT y);
ARGUMENTS
x - Horizontal Speed (higher numbers are slower)
y - Vertical Speed (higher numbers are slower)
RETURNS......None
TesSeRact CXL V5.5 Documentation Page 187
---------------------------------------------------------------------------
NAME.........MSstat <TcxlMou.H>
DESCRIPTION
Update _MouCtl with current mouse position and status.
PROTOTYPE....VOID PAS MSstat(NOARG);
ARGUMENTS....None
RETURNS......None
---------------------------------------------------------------------------
NAME.........MSterm <TcxlMou.H>
DESCRIPTION
This function is called automatically by TcxlTerm() (Page 142) to
reset the mouse before terminating the program.
PROTOTYPE....VOID PAS MSterm(NOARG);
ARGUMENTS....None
RETURNS......None
---------------------------------------------------------------------------
NAME.........MSupdat <TcxlMou.H>
DESCRIPTION
Conditionally hide mouse cursor for conditional update of screen
area.
PROTOTYPE....VOID PAS MSupdat(IntT sr, IntT sc, IntT er, IntT ec);
ARGUMENTS
sr - Upper Row Boundary
sc - Left Column Boundary
er - Bottom Row Boundary
sc - Right Column Boundary
RETURNS......None
Page 188 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME........._MSget <TcxlMou.H>
DESCRIPTION
Internal routine to get current cursor position and update _MouCtl.
PROTOTYPE....VOID PAS _MSget(NOARG);
ARGUMENTS....None
RETURNS......None
---------------------------------------------------------------------------
NAME........._MSpos <TcxlMou.H>
DESCRIPTION
Internal routine to position mouse cursor at coordinates stored in
_MouCtl.
PROTOTYPE....VOID PAS _MSpos(NOARG);
ARGUMENTS....None
RETURNS......None
---------------------------------------------------------------------------
NAME........._MSset <TcxlMou.H>
DESCRIPTION
Internal routine to call mouse software-reset, and force cursor
limits to full size of screen as deliminated in BIOS data area.
PROTOTYPE....VOID PAS _MSset(NOARG);
ARGUMENTS....None
RETURNS......None
TesSeRact CXL V5.5 Documentation Page 189
---------------------------------------------------------------------------
NAME........._MSsho <TcxlMou.H>
DESCRIPTION
Internal routine to reveal the hidden mouse cursor. If passed
parameter is non-zero, only show cursor if MOU_CURS. Also if
MOU_CURS, update cursor mask.
PROTOTYPE....VOID PAS _MSsho(IntT s);
ARGUMENTS
s - Flag value (see description)
RETURNS......None
---------------------------------------------------------------------------
Internal Level Functions
Conversion Subsystem
---------------------------------------------------------------------------
NAME.........cvtcf <TcxlCvt.H>
DESCRIPTION
Converts a TCXL field string to a floating point number.
PROTOTYPE....DblT CTYP cvtcf(ChrP fp);
ARGUMENTS
fp - Pointer to TCXL field string with embedded decimal
RETURNS
A double precision floating point number.
---------------------------------------------------------------------------
NAME.........cvtci <TcxlCvt.H>
DESCRIPTION
Converts a TCXL field string to an integer.
PROTOTYPE....IntT CTYP cvtci(ChrP fp);
ARGUMENTS
fp - Pointer to TCXL field string
RETURNS
An integer number.
Page 190 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........cvtfc <TcxlCvt.H>
DESCRIPTION
Converts a floating point number to a TCXL field string.
PROTOTYPE....VOID CTYP cvtfc(ChrP fp, DblT dv, IntT fw, IntT nd);
ARGUMENTS
fp - Pointer to TCXL field string
dv - Floating point number to convert
ws - field width
nd - number of decimal places to convert
RETURNS......None
---------------------------------------------------------------------------
NAME.........cvtic <TcxlCvt.H>
DESCRIPTION
Converts an integer to a TCXL field string.
PROTOTYPE....VOID CTYP cvtic(ChrP fp, IntT iv, IntT fs);
ARGUMENTS
fp - Pointer to TCXL field string
iv - integer value to convert
fs - field size
RETURNS......None
---------------------------------------------------------------------------
NAME.........touplow <TcxlCvt.H>
DESCRIPTION
Converts a character to upper or lowercase depending on previous
character. This function is used internally by other TCXL
functions.
PROTOTYPE....IntT CTYP touplow(ChrP s, ChrP p, IntT c);
ARGUMENTS
s - Pointer to string to base conversion on
p - Pointer to current position in string
c - Character to convert
RETURNS
The converted character.
SEE ALSO
struplow (Page 141)
TesSeRact CXL V5.5 Documentation Page 191
---------------------------------------------------------------------------
Format Control Subsystem
---------------------------------------------------------------------------
NAME.........FmtBack <TcxlFmt.H>
DESCRIPTION
Backspace TCXL format string and output pointer.
PROTOTYPE....VOID CTYP FmtBack(ChrI f, ChrI o);
ARGUMENTS
f - Pointer to Format String (See Appendix E)
o - Pointer to Output String
RETURNS......None
---------------------------------------------------------------------------
NAME.........FmtChar <TcxlFmt.H>
DESCRIPTION
Checks given character against a given TCXL character type code,
and determines if that character is valid for that type. This
function is used internally by several TCXL functions.
PROTOTYPE....IntT CTYP FmtChar(IntT c, IntT f);
ARGUMENTS
c - character to test
f - character type code to compare with (See Appendix E)
RETURNS
0 - character is not valid for given type code
1 - character is valid for given type code
---------------------------------------------------------------------------
NAME.........FmtExcl <TcxlFmt.H>
DESCRIPTION
Search TCXL format-string "[]" exclusion set for the passed
character. Update passed pointer past ']' and return 1 if
character is not in set, else return 0 and leave pointer for next
char. Assumes valid format-string.
PROTOTYPE....IntT CTYP FmtExcl(ChrI f, IntT c);
ARGUMENTS
f - Exclusion Set
c - Character to search for
RETURNS
1 - Character Not Found In Set; 'f' updated past validation list
0 - Character Found
Page 192 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME.........FmtFlip <TcxlFmt.H>
DESCRIPTION
Modifies a format option bit.
PROTOTYPE....VOID CTYP FmtFlip(IntT c);
ARGUMENTS
c - Format option to change.
RETURNS......None
---------------------------------------------------------------------------
NAME.........FmtIncl <TcxlFmt.H>
DESCRIPTION
Search TCXL format-string "<>" inclusion set for the passed
character. Update passed pointer past ']' and return 1 if
character is in set, else return 0 and leave pointer for next char.
Assumes valid format-string.
PROTOTYPE....IntT CTYP FmtIncl(ChrI f, IntT c);
ARGUMENTS
f - Inclusion Set
c - Character To Search For
RETURNS
1 - Character Found In Set; 'f' updated past validation list
0 - Character Not Found
---------------------------------------------------------------------------
NAME.........FmtInit <TcxlFmt.H>
DESCRIPTION
Verify TCXL format string against passed usage. Return 0 on
failure, else set globals FmtOpt and FmtUse and return field length
on success.
PROTOTYPE....IntT CTYP FmtInit(ChrP f, IntT u);
ARGUMENTS
f - Format String (See Appendix E)
u - Usage
RETURNS
Field length, or Zero on failure
TesSeRact CXL V5.5 Documentation Page 193
---------------------------------------------------------------------------
NAME.........FmtPutF <TcxlFmt.H> Macro
DESCRIPTION
Sets internal backspace function for FmtBack();
PROTOTYPE....VOID FmtPutF(VfiCP f);
#define FmtPutF(f) (FmtPut = (f))
ARGUMENTS
f - Backspace Function
RETURNS......None
---------------------------------------------------------------------------
Near/Far Subsystem
There are three basic functions used here. _FarCpy(), _FarGet(), and
_FarPut(). Each function is aliased to allow direct access by far
pointers, rather than just through segment:offset combinations. There is
no additional code used for the aliases, so feel free to use whichever is
most convenient for your purposes.
---------------------------------------------------------------------------
NAME.........MK_FP <TcxlFar.H> Macro
.............MK_FPT Macro
DESCRIPTION
These macros are used to create far pointers from segment/offset
combinations. MK_FP creates an anonymous pointer (void far *),
while MK_FPT creats a "typed" far pointer, necessary in C++, since
C++ does not permit assigning a VOID to a typed pointer.
PROTOTYPE....MK_FP(s, o)
.............MK_FPT(t, s, o)
ARGUMENTS
s - Segment Value
o - Offset Value
t - Type to cast return pointer
RETURNS
FAR pointer to object
Page 194 TesSeRact CXL V5.5 Documentation
---------------------------------------------------------------------------
NAME........._FarCpy <TcxlFar.H>
............._CpyFar
These functions are used to copy data from one far pointer to
another.
PROTOTYPE....VOID PAS _FarCpy(WrdT st, WrdT ot, WrdT sf, WrdT of, WrdT n);
VOID PAS _CpyFar(BytFP t, BytFP f, WrdT n);
ARGUMENTS
st - Destination Segment
ot - Destination Offset
t - Far Pointer to Destination
sf - Source Segment
of - Source Offset
f - Far Pointer to Source
n - Number of Bytes to copy
RETURNS......None
---------------------------------------------------------------------------
NAME........._FarGet <TcxlFar.H>
............._GetFar
DESCRIPTION
These functions will copy the specified number of bytes from an
explicit far pointer to a pointer of the correct size for the
current memory model (either near or far).
PROTOTYPE....VOID PAS _FarGet(BytP p, WrdT s, WrdT o, WrdT n);
VOID PAS _GetFar(BytP p, BytFP f, WrdT n);
ARGUMENTS
p - Destination Pointer
s - Source Segment
o - Source Offset
f - Far Pointer to Source
n - Number of Characters to copy
RETURNS......None
TesSeRact CXL V5.5 Documentation Page 195
---------------------------------------------------------------------------
NAME........._FarPut <TcxlFar.H>
............._PutFar
DESCRIPTION
These functions will copy the specified number of bytes from a
pointer of the correct size for the current memory model (either
near or far) to an explicit far pointer.
PROTOTYPE....VOID PAS _FarPut(WrdT s, WrdT o, BytP p, WrdT n);
VOID PAS _PutFar(BytFP t, BytP p, WrdT n);
ARGUMENTS
s - Destination Segment
o - Destination Offset
t - Far Pointer to Destination
p - Source Pointer
n - Number of Characters to copy
RETURNS......None
Page 196 TesSeRact CXL V5.5 Documentation